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 |