본문 바로가기
Java/Basic

instanceof

by o3oppp 2024. 12. 31.
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