평생 소장! 19,800 원 15,000 원(계좌이체 구매 한정)


기업은행: 206-021800-01-029

예금주: 박세홍


카톡 ID: chaesam(카톡 아이디 검색 후, 문의 주세요!)

이메일: mail@cloudstudying.kr

인터페이스와 업캐스팅

부모의 타입으로 해석?

업캐스팅(up-casting)이란, 자식 객체를 부모의 타입으로 해석하는 것을 말합니다.
클라우드스터딩-자바-업캐스팅-상속

이와 마찬가지로, 인터페이스를 구현하는 객체는 인터페이스 타입으로 업캐스팅 될 수 있습니다.
클라우드스터딩-자바-업캐스팅-인터페이스

그룹화

전혀 다른 객체들일지라도 같은 인터페이스를 구현하였다면, 업캐스팅을 통하여 그룹화가 가능합니다.

  1. // 다양한 객체 생성
  2. Bird bird = new Bird();
  3. Helicopter copter = new Helicopter();
  4. Rocket rocket = new Rocket();
  5. // 인터페이스 타입으로 그룹화
  6. Flyable[] flyableThings = { bird, copter, rocket };

문제

주어진 코드에는 Flyable 인터페이스를 구현하고 있는 서로 다른 3개의 클래스들이 존재한다.
클라우드스터딩-자바-업캐스팅-인터페이스-그룹화

출력 예와 같은 결과를 얻도록, Flyable 인터페이스를 각 클래스에 구현하여 코드를 완성하시오.

출력 예

  1. <새>가 날개를 퍼덕이며 날아갑니다!
  2. <헬기>가 프로펠러를 힘차게 돌리며 날아갑니다!
  3. <로켓>이 제트 엔진을 분출하며 날아갑니다!
관련 강의로 이동

코드: java 1.8

public class ObjectGrouping {
public static void main(String[] args) {
//
Bird bird = new Bird();
Helicopter copter = new Helicopter();
Rocket rocket = new Rocket();
//
Flyable[] flyableThings = { bird, copter, rocket };
//
for (int i = 0; i < flyableThings.length; i++) {
Flyable temp = flyableThings[i];
temp.fly();
}
}
}
interface Flyable {
public void fly();
}
class Bird implements Flyable {
/* 1. fly() . */
}
class Helicopter implements Flyable {
/* 2. fly() . */
}
class Rocket implements Flyable {
/* 3. fly() . */
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

입력

정답이 궁금하다면? 코드를 제출해보세요!