정의:
- 객체가 여러 형태를 가질 수 있는 성질을 의미한다.
참조 변수의 타입 변환:
-
자동 타입 변환:
- 자식 객체를 부모 타입의 변수로 참조할 때 발생한다.
부모타입 변수 = 자식타입객체;
- 자식 객체는 부모 객체의 멤버를 상속받으므로, 부모 타입으로 자동 변환된다.
-
강제 타입 변환:
자식타입 변수 = (자식타입) 부모타입객체;
- 부모 타입의 객체를 자식 타입의 변수로 참조하려면 강제로 타입 변환해야 한다.
- 부모 타입의 객체가 자식 타입으로 이미 자동 타입 변환된 후에만, 다시 자식 타입으로 변환할 수 있다.
- 자동 타입 변환되지 않은 부모 객체를 직접 자식 타입으로 변환하려고 하면 오류 발생한다.
instance of 연산자:
- 객체의 실제 타입을 확인하기 위한 연산자이다.
- 다형성 때문에 어떤 객체가 실제로 어떤 타입인지 확인하기 위해 사용한다.
- 사용 예:
System.out.println(p instanceof Parent);
- p 객체가 Parent 클래스의 인스턴스인지 확인한다.