다형성이란 같은 타입이지만 실행 결과가 다양한 객체 대입(이용) 가능한 성질을 말한다. 부모 타입에는 모든 자식 객체가 대입이 가능하고 자식 타입은 부모 타입으로 자동 타입 변환이 가능하다.
바로 위의 부모가 아니더라도 상속 계층의 상위면 자동 타입 변환이 가능하다. 변환 후에는 부모 클래스 멤버만 접근이 가능하다.
해당 클래스의 객체 대입이 원칙이나 자식 객체 대입하는 것도 허용한다.
• 자식 타입을 부모 타입으로 자동 변환 후, 다시 자식 타입으로 변환할 때
• 자식 타입이 부모 타입으로 자동 변환
• 부모 타입에 선언된 필드와 메소드만 사용 가능
• 자식 타입에 선언된 필드와 메소드를 다시 사용해야 할 경우
부모 타입이면 모두 자식 타입으로 강제 타입 변환할 수 있는 것 아님
• ClassCastException 예외 발생 가능
• 먼저 자식 타입인지 확인 후 강제 타입 실행해야 함