부모타입 = 자식타입
자식타입에서 부모타입으로 자동형변관 가능
부모타입으로 자동 타입 변환된 이후, 부모 클래스에 선언된 필드와 메소드에만 접근 가능!
( 변수는 자식 객체를 참조하지만 변수로 접근 가능한 멤버는 부모 클래스 멤버로 한정됨)
하지만 자식 클래스에서 오버라이딩 된 메서드가 있으면, 부모가 아닌 오버라이딩 된 메서드가 호출된다.
강제 타입 변환
Parent parent = new Child(); // 자식 객체가 부모 타입으로 자동 변환 후 다시 자식 타입으로 변환할 때만 강제 타입 변환을 사용할 수 있다.
Child child = (Child)parent;
객체 타입 확인
boolean result = 객체 instanceof 타입;
// exam
public void method(Parent parent) {
if(parent instanceof Child) {
Child child = (Child)parent;
...
}
}
// from java12
if(person instanceof Student student){
student.method();
}