예제 14-8 질문입니다.
코드에서 보면 air가 vehicle을 참조해 만들어집니다.
클래스 정의에서 보면 plane이 vehicle을 상속받는데 air를 vehicle로 선언해 만들면
air ?= car. 구문이 없어도
call method: air->fly 구문은 실행이 불가능한것 아닌가요?
예제 14-8 질문입니다.
코드에서 보면 air가 vehicle을 참조해 만들어집니다.
클래스 정의에서 보면 plane이 vehicle을 상속받는데 air를 vehicle로 선언해 만들면
air ?= car. 구문이 없어도
call method: air->fly 구문은 실행이 불가능한것 아닌가요?
설명을 보니 "즉 plane 클래스는 부모 클래스의 create 메서드만 사용할 수 있다."라는 말이 있습니다.
air가 plane클래스로 선언되고 vehicle 클래스로 캐스팅이 되는 시나리오가 아니었나 싶습니다.
air를 plane으로 참조해 만들고 air ?= car. 한 후 air->drive( ) 해도 에러가 발생하는데 발생 지점은 casting 부분입니다.
plane이 vehicle을 상속하는 관계인데 왜 캐스팅이 안되는지 잘 모르겠어요..