티스토리 뷰

인터페이스를 활용하여 원하는 노래를 호출해보겠다.

 

우선, 음악을 재생할 수 있는 Playable 인터페이스를 만들준다.

   빅뱅 ' 봄 여름 가을 겨울' , 아이들 'Tomboy' 음악을 재생하고 싶다.

   각 playable 인터페이스를 구현할 수 있는 Bigbang,Idle 클래스를 만들어 보겠다. 

 

 

1. 음악을 재생하기 위해, Audio 인스턴스 lpRecode를 생성한다.

2. Idle 앨범을 구매했다. Idel 인스턴스를 생성했다.

3. Bigbang 인스턴스를 생성했다.

4. Audio 클래스를 생성했다.

  play 메서드를 가지고 있는 Playable 타입의  lp 매개변수를 입력했다

  이것은 매개변수의 다형성이라고 한다.

  이 playable은 상위 타입이고, bigbang 앨범과 Idle 앨범은 하위 타입이기 때문에 

  lp.play를 입력할 수 있다.

5. 만약 Bigbang 앨범을 호출하면

6. lp.play가 실행되면서

이렇게 Bigbang이 호출이 된다.

 


이것이 인터페이스의 다형성이 특징이다.

인터페이스를 사용하면 다형성을 구현하여 확장성 있는 프로그램을 만들 수 있다.

즉, 클라이언트 프로그램을 많이 수정하지 않고 기능을 추가하거나 다른 기능을 사용할 수 있다.