Hyundai h = new Hyundai();
Car c = (Car)h; // OK, 조상인 Car 타입으로 형변환 (생략 가능)
Hyundai h2 = (Hyundai)c; // OK, 자손인 Hyundai 타입으로 형변환 (생략 불가)
❌ Kia k = (Kia)h; // ERROR, 상속 관계가 아닌 클래스 간의 형변환 불가
사용 가능한 멤버 개수 변화 (5개 → 4개 → 5개)
- 인스턴스를 확인하고
true
반환instanceof
로 확인void doWork(Car c){
if (c instanceof Hyundai) { // 1. 형변환 가능한지 확인
Hyundai h = (Hyundai)c;// 2. 형변환
Hyundai h = new Hyundai();
System.out.println(h instanceof Object); // true
System.out.println(h instanceof Car); // true
System.out.println(h instanceof Hyundai); // true
instanceof
true
반환)