강제 타입 변환은 자식 타입이 부모 타입으로 변환되어 있는 상태에서만 가능한데,
부모 타입 변수가 참조하는 객체가 부모 객체인지 자식 객체인지 어떻게 확인할 수 있을까?
어떤 객체가 어떤 클래스의 인스턴스인지 확인하려면 instanceof 연산자를 사용하면 된다.
boolean result = 좌항(객체) instanceof 우항(타입)
객체의 타입이 맞으면 true, 아니면 false를 산출한다.
매개변수의 타입을 조사할 때 주로 사용된다.
public void method(Parent parent) {
if(parent instanceof Child) {
Child child = (Child) parent;
}
}
타입을 확인하지 않고 강제 타입 변환을 시도하면 ClassCastException이 발생할 수 있으니 꼭 확인해주자.
'old > Java' 카테고리의 다른 글
인터페이스(interface) (0) | 2020.11.15 |
---|---|
추상(abstract) 클래스 (0) | 2020.11.15 |
상속(Inheritance) (0) | 2020.11.15 |
어노테이션(Annotation) (0) | 2020.11.15 |
접근 제한자(Access Modifier) (0) | 2020.11.15 |