회원가입

다형성 - instanceof

Beany 2024-10-10

ChatGPT 요약

참조형 변수 다형성에서 어떤 인스턴스를 참조하는지 확인하려면 'instanceof' 키워드를 사용한다. 이를 통해 부모 타입 변수가 자식 인스턴스를 참조하는 경우에도 해당 인스턴스의 실제 타입을 확인할 수 있다. Java 16에서는 'instanceof'와 함께 변수를 선언하는 문법도 추가되었다.

다형성에서 참조형 변수는 이름 그대로 다양한 자식을 대상으로 참조할 수 있다. 그런데 참조하는 대상이 다양하기 때문에 어떤 인스턴스를 참조하고 있는지 확인하려면 어떻게 해야할까?

Parent parent1 = new Parent();
Parent parent2 = new Child();

여기서 Parent 는 자신과 같은 parent 의 인스턴스도 참조할 수 있고, 자식 타입인 Child 의 인스턴스도 참조할 수 있다. 이때 parent1, parent2 변수가 참조하는 인스턴스의 타입을 확인하고 싶다면 instanceof 키워드를 사용하면 된다.

 

package poly.basic;

public class CastingMain5 {
    public static void main(String[] args) {
        Parent parent1 = new Parent();
        call(parent1);

        Parent parent2 = new Child();
        call(parent2);
    }

    private static void call(Parent parent) {
        parent.parentMethod();

        if (parent instanceof Child) {
            ((Child) parent).childMethod();
        }
    }
}
Parent method
Parent method
Child method

 

 

JAVA16 instanceof 변수 선언 가능

package poly.basic;

public class CastingMain5 {
    public static void main(String[] args) {
        Parent parent1 = new Parent();
        call(parent1);

        Parent parent2 = new Child();
        call(parent2);
    }

    private static void call(Parent parent) {
        parent.parentMethod();

        if (parent instanceof Child child) {  // instanceof 에 변수 선언 가능
            child.childMethod();
        }
    }
}
Parent method
Parent method
Child method

 

0 0
JAVA
이 공간은 개인 공부를 통해 얻은 정보를 체계적으로 정리하고 공유하는 곳입니다. 학습한 내용, 발견한 지식, 그리고 문제 해결 방법 등을 기록하여 나만의 학습 자료를 구축하고, 필요할 때 쉽게 참고할 수 있는 유용한 자원으로 활용할 수 있도록 합니다.
Yesterday: 456
Today: 213