본문 바로가기

OOP

업 캐스팅, 다운 캐스팅

Q : 광역버스, 고속버스, 시내버스가 터미널에 모두 들어갈 수 있다. 시내버스는 못 들어가게 하려면?

1. enterTerminal 인터페이스 구현

2. EnterTerminal 인터페이스를 상속받는 클래스

 

3. EnterTerminal 인터페이스를 상속받지 않는 클래스

 

4. 배열 타입을 EnterTerminal 인터페이스로 생성

- CityBus 클래스는 EnterTerminal 인터페이스를 상속받지 않아서

- CityBus 클래스로 만든 객체는 배열에 넣어지지 않는다.

 

 

 

 

 

업 캐스팅

- 자식인 ExpressBus 타입에서 부모 Bus 타입으로 업캐스팅

- bus.engineStart() 오류 : Bus 클래스의 함수이므로 ExpressBus 타입으로 함수 불러올 시 오류 남

 

 

다운 캐스팅

- 부모 Bus 타입에서 자식 ExpressBus 타입으로 다운캐스팅

- ExpressBus의 함수로만 선언되어있는 isExpressBus이므로 Bus 타입에서 불러올 시 오류 남

 

 

 

 

 

 

 

 

'OOP' 카테고리의 다른 글

예외(Exception)  (0) 2023.12.22
디자인 패턴  (0) 2023.08.25
OOP 정리  (0) 2023.08.25
Private  (0) 2023.08.25
객체 지향 프로그램 (OOP)  (1) 2023.08.07