자바의정석

[자바의 정석 - 기초편] ch7-24,25 참조변수의형변환(2)

유호야 2022. 3. 21. 19:46
반응형

컴파일러가 실제 실행했을 때 확인을 못하기 때문에 

참조변수간의 형변환보다는 실제 가리키는 객체가 무엇인지가 중요하다. 

 

즉 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();
	}
}
반응형