인터페이스와 업캐스팅
부모의 타입으로 해석?
업캐스팅(up-casting)이란, 자식 객체를 부모의 타입으로 해석하는 것을 말합니다.
이와 마찬가지로, 인터페이스를 구현하는 객체는 인터페이스 타입으로 업캐스팅 될 수 있습니다.
그룹화
전혀 다른 객체들일지라도 같은 인터페이스를 구현하였다면, 업캐스팅을 통하여 그룹화가 가능합니다.
// 다양한 객체 생성
Bird bird = new Bird();
Helicopter copter = new Helicopter();
Rocket rocket = new Rocket();
// 인터페이스 타입으로 그룹화
Flyable[] flyableThings = { bird, copter, rocket };
문제
주어진 코드에는 Flyable 인터페이스를 구현하고 있는 서로 다른 3개의 클래스들이 존재한다.
출력 예와 같은 결과를 얻도록, Flyable 인터페이스를 각 클래스에 구현하여 코드를 완성하시오.
출력 예
<새>가 날개를 퍼덕이며 날아갑니다!
<헬기>가 프로펠러를 힘차게 돌리며 날아갑니다!
<로켓>이 제트 엔진을 분출하며 날아갑니다!