반응형
참조변수의 형변환 가능여부 확인에 사용
static void doWork(Car4 c) {
// FireEngine2은 Ambulance2과 형변환이 안되므로 확인
// c가 FireEngine2일 경우 실행하는 if문
if (c instanceof FireEngine2) { // 형변환이 가능한 지 확인
FireEngine2 fe = (FireEngine2) c;
fe.water();
}
}
따라서
형변환 전에 반드시 instanceof로 확인필요
System.out.println(fe instanceof Object); // true
System.out.println(fe instanceof Car4); // true
System.out.println(fe instanceof FireEngine2); // true
조상인 경우 모두 참 true 반환
이 점을 주의할 것
한마디로 조상class로 확인해봤자 별 의미 없다..
그래서 instanceof 뒤에는 자식class가 오는 게 옳은 듯
// 따라서 조상인 Object나 Car4에 대해서도 형변환이 가능은 하다.
Object obj = fe;
Car4 c = fe;
이런 것도 가능..하지만 어차피 fe에 있는 것만 쓸 수 있다는 거
반응형
'☕ JAVA > ☕ Class & Method' 카테고리의 다른 글
[JAVA]다형성의 장점2:여러 종류의 객체를 배열로 다루기 (0) | 2024.04.08 |
---|---|
[JAVA]다형성의 장점1:매개변수의 다형성 (0) | 2024.04.07 |
[JAVA]참조변수의 형변환 (0) | 2024.04.04 |
[JAVA]다형성 polymorphism (1) | 2024.04.04 |
[JAVA]접근 제어자/제한자 access modifier (0) | 2024.04.02 |