구독을 신청하세요!

평생 구독! 19,800 원(이벤트 기간 한정)


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

예금주: 박세홍


카톡 ID: chaesam

이메일: mail@cloudstudying.kr

# 다형성 인생 #### 여러 역할 수행하기 하나의 클래스가 여러 개의 인터페이스(역할)를 구현할 수 있습니다. 이는 마치, 홍팍이가 아들/강사/개발자의 역할을 수행하는 것과 같습니다. ``` interface AAA { public void aaa(); } interface BBB { public void bbb(); } interface CCC { public void ccc(); } // Foo 클래스는 총 3가지 역할(AAA, BBB, CCC)을 수행! class Foo implements AAA, BBB, CCC { ... } ``` #### 인터페이스 타입으로 해석 위 코드에서 Foo 클래스의 객체는 각 인터페이스 타입으로도 해석 가능합니다. 홍팍이가 집에서는 아들, 학원에서는 강사, 회사에서는 개발자인 것처럼 말입니다. ``` // 객체 생성 Foo obj = new Foo(); // 인터페이스 타입으로 업캐스팅(해석) AAA a = obj; BBB b = obj; CCC c = obj; ``` 인터페이스 타입으로 해석된 객체는, 해당 인터페이스의 메소드만 수행 가능합니다. ``` a.aaa(); // O b.bbb(); // O c.ccc(); // O a.bbb(); // X b.aaa(); // X c.bbb(); // X ``` ## 문제 쓰리잡 인생 홍팍이는 3가지의 직업(개발자, 강사, 마사지사)을 가지고 있다. ![클라우드스터딩-자바-인터페이스-다형성](https://i.imgur.com/mfpIsmU.png) 출력 예와 같이 홍팍이가 쓰리잡을 뛸 수있도록, 뼈대코드 수정하시오. ## 출력 예 ``` 홍팍 -> Java 프로그래밍 중! 홍팍 -> 자료구조 수업 중! 홍팍 -> 마사지 중! ```
관련 강의로 이동

코드: java 1.8

public class VariousRoles { public static void main(String[] args) { // HongPark 객체 생성 HongPark park = new HongPark(); // 각 직업으로 변신 Developer devPark = park; Instructor instPark = park; Masseur masPark = park; /* 3. 직업별 메소드를 호출하여 코드를 완성하세요. */ devPark.programming("____"); instPark.teach("____"); masPark._______(); } } interface Developer { public void programming(String lang); } interface Instructor { public void teach(String subject); } interface Masseur { public void massage(); } /* 1. 홍팍 클래스에 개발자, 강사, 마사지사 역할을 부여하세요. */ class HongPark { private String name = "홍팍"; /* 2. 구현하기로 한 인터페이스의 메소드를 오버라이딩 하세요.*/ }

입력

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