메뉴 건너뛰기

SAP 한국 커뮤니티



p.921,922,923,924 / 예제17-3-3 / Z17_077 내용 오류

초코 2008.12.05 19:30 조회 수 : 2648 추천:2

(1) 책의 내용대로 실행할 경우 [그림 : 17-3-3]의 결과가 나타납니다.


하지만 이것은 casting했기 때문이 아니라 pony와 air777 모두 vehicle 클래스의 인스턴스이기 때문에


애시당초 fly method가 정의되어 있지 않기 때문입니다.


같은 클래스 타입 변수이기 때문에 casting도 필요 없습니다.


 


data: pony type ref to vehicle,


      air777 type ref to plane.


  :


  :


create object air777.


  :


  :


pony ?= air777.


  :


  :


*call method: pony->fly.   "error


call method: pony->create.


 


 


로 해야 의도에 맞는 소스입니다.


air777 ?= pony 는 안되는데 이유는 pony가 air777보다 상위 클래스이기 때문입니다.


상위 클래스 변수에 하위 클래스 인스턴스를 담을 수는 있지만 반대는 안됩니다.


air777 ?= pony 할 경우 casting 오류가 발생합니다. (try catch는 이를 무시합니다.)


위처럼 고치면 try catch 문을 제거해도 에러가 없습니다. (casting에 문제가 없으므로)


 


(2) [결과 : 17-3-3] 캡쳐의 표시 위치가 틀렸습니다. 이 예제의 맨 뒤로 이동해야 합니다. (p.924)