
하나의 객체가 여러 가지 타입을 가질 수 있는 것.
조상 타입 참조 변수로 자손 타입 객체를 다루는 것
SmartTv s = new SmartTv(); // 참조 변수와 인스턴스의 타입이 일치
Tv t = new SmartTv(); // 타입 불일치, 조상 타입 참조변수로 자손 타입 인스턴스 참조
자손 타입의 참조변수로 조상 타입의 객체를 가리킬 수 없다.
Tv t = new SmartTv(); // OK. 허용
SmartTv s = new Tv(); // 에러. 허용 안 됨.
Cat cat = new Cat();
Animal animal = cat;
필드 타입을 부모 타입으로 선언할 경우 다양한 자식 객체가 저장되어 필드 사용 결과가 달라질 수 있음.
매개변수의 다형성
강제 타입 변환(casting)
instanceof 연산자
boolean result = 좌항(객체) instanceof 우항(타입)