본문 바로가기

BackEnd/Java

같은 참조 타입인지 확인하는 instanceof 연산자

주로 업캐스팅, 다운캐스팅을 할 때 실제 instanceof 연산자를 통하여,

좌변의 객체(참조변수)가 우변 클래스의 타입과 같은 타입인지 판별하는 연산자이다

 

판별 결과가 true라면 형변환이 가능한 관계라는 것을 뜻한다

 

예문

 

Child c = new Child();

if(c instanceof Parent) { // c is a Parent?
	System.out.println("c는 Parent이다");
    
    // 형변환이 가능한 true이니 업캐스팅 실시
    Parent p = c;
    p.parentPrn();
} else {
	// false : 형변환이 불가능한 관계
	System.out.println("응 c는 Parent 아니야");
}

 

형변환이 가능한지 이론적으로 관계를 따져볼 때

is-A 또는 has-A 관계를 대입하여 말이 되는가를 살펴보면 쉽다

'BackEnd > Java' 카테고리의 다른 글

상수 (final)  (0) 2020.03.16
동적바인딩과 다형성(polymorphism)  (0) 2020.03.16
레퍼런스 형변환 (업캐스팅, 다운캐스팅)  (0) 2020.03.16
메서드 오버라이딩 (Overriding)  (0) 2020.03.16
접근제한자  (0) 2020.03.16