JAVA instanceof 연산자

강효림·2023년 4월 16일
0

JAVA

목록 보기
7/19
post-thumbnail

instanceof 연산자란?

레퍼런스가 가리키는 객체의 타입 식별을 위해 사용하는 연산자이다.

객체레퍼런스 instanceof 클래스타입

이렇게 입력하면 true/false를 판별하고 그에 따른 다음코드를 실행한다.

instanceof 연산자를 쓰는 이유

업캐스팅되면 객체의 타입 판단이 어렵기 때문에 사용한다.
슈퍼클래스는 여러 서브클래스들로 상속되기 때문이다.

사용 예시

Transportation a = new Subway();
Transportation b = new Line2();
Transportation c = new Bus();

if(a instanceof Transportation) //true
if(a instanceof Bus) //false
if(b instanceof Bus) //false , b는 Bus타입이 아니다
if(b instanceof Subway) //true
if(a instanceof Line2) //true , 상속관계
if(c instanceof Line2) //false , 하위에서 상위상속은 불가하기 때문

오류나는 경우

if(8 instanceof int)

instanceof는 객체에 대한 레퍼런스만 사용하기에 문법오류가 발생한다.
하지만 문자(String)은 객체이기 때문에 오류가 나지 않는다.

0개의 댓글