반응형
컴파일러가 실제 실행했을 때 확인을 못하기 때문에
참조변수간의 형변환보다는 실제 가리키는 객체가 무엇인지가 중요하다.
즉 car 인스턴스를 가리키는 f1, f2는 FireEngine 객체에만 있는 water() 메서드를 실행할 수 없다.
package ch07;
class Car {
int door;
int color;
void drive() {
System.out.println("drive!");
}
}
class FireEngine extends Car {
void water() {
System.out.println("water!");
}
}
public class Ex7_7 {
public static void main(String[] args) {
Car c1 = new Car();
Car c2 = new FireEngine();
FireEngine f1 = new FireEngine();
FireEngine f2 = (FireEngine)new Car();
c1.drive();
c2.drive();
f1.drive();
f2.drive();
}
}
반응형
'자바의정석' 카테고리의 다른 글
[자바의 정석 - 기초편] ch7-27,28 매개변수다형성 (0) | 2022.03.21 |
---|---|
[자바의 정석 - 기초편] ch7-26 instanceof 연산자 (0) | 2022.03.21 |
[자바의 정석 - 기초편] ch7-24,25 참조변수의 형변환(1) (0) | 2022.03.20 |
[자바의 정석 - 기초편] ch7-23 다형성 (0) | 2022.03.20 |
[자바의 정석 - 기초편] ch7-22 캡슐화 (0) | 2022.03.20 |