1. instanceof란?
- 객체 타입을 비교 연산자
- 형변환 가능 여부 확인 true / false 반환
- 전혀 연관성이 없는 타입과는 비교 불가(문법 오류)
- 상속 관계가 아니면 비교 자체가 불가함
- 다형성은 상속 관계에서만 성립하기 때문에 객체 타입 비교도 다형성이 성립된 상태에서만 의미 있음
2. instanceof 활용 코드
- v1의 타입인 Integer는 Object와 상속 관계(다형성 O)
- String은 Integer와 아무 관계가 없기 때문에 syntax error
@Test
public void m1() {
Integer v1 = 3;
System.out.println(v1 instanceof Object);
System.out.println(v1 instanceof Integer);
}
- o1의 타입인 Object는 String, Integer와 상속 관계(다형성 O)
=> syntax erro는 나지 않고, 객체 타입을 비교하여 결과 반환
@Test
public void m2() {
Object o1 = "string";
System.out.println(o1 instanceof Object);
System.out.println(o1 instanceof String);
System.out.println(o1 instanceof Integer);
}
}