instanceof
- 다형성에서는 참조형 변수는 이름 그대로 다양한 자식을 대상으로 참조 가능하기에 어떤 인스턴스를 참조하는 지 확인이 필요한 경우 존재
- 인스턴스의 타입을 확인하는 키워드
- "객체 instanceof 클래스" 형식으로 사용
사용 예시
new Parent() instanceof Parent
Parent p = new Parent() //같은 타입 true
new Child() instanceof Parent
Parent p = new Child() //부모는 자식을 담을 수 있다. true
new Parent() instanceof Child
Child c = new Parent() //자식은 부모를 담을 수 없다. false
new Child() instanceof Child
Child c = new Child() //같은 타입 true
- 오른쪽에 있는 타입에 왼쪽에 있는 인스턴스의 타입이 들어갈 수 있으면 true, 불가능하면 false
- 형 변환이 불가능한 경우 즉, 타입이 상위 클래스도 하위 클래스도 아닌 경우 에러 발생
자바 16 - Pattern Matching for instanceof
// 자바 16 이전
if (parent instanceof Child) {
Child child = (Child) parent;
child.callMethod();
}
// 자바 16
if (parent instanceof Child child) {
child.callMethod();
}
- 자바 16부터는 instanceof를 사용하면서 동시에 변수 선언 가능
'Java > Basic' 카테고리의 다른 글
추상 클래스, 인터페이스 (1) | 2025.01.02 |
---|---|
다형성과 메서드 오버라이딩 (0) | 2024.12.31 |
다형성과 캐스팅 (0) | 2024.12.30 |
상속 (0) | 2024.12.12 |
static (1) | 2024.12.08 |