Java OO设计:一个人可以是歌手,钢琴家或两者兼而有之

Mat*_*hew 1 java oop multiple-inheritance

一个人可以是一个钢琴家,有一个.play()方法,一个歌手,有一个.sing()方法,无论是钢琴家还是歌手,在后一种情况下他都可以. )以及.play()

对于这种情况,可能的设计是什么?

Lou*_*man 7

Pianist并且Singer必须是那些相应方法的接口.

那么你可能有一个同时为a Pianist和a 的特定人的课程Singer:

class DoublyTalentedPerson implements Pianist, Singer {
  public void play() {...}
  public void sing() {...}
}
Run Code Online (Sandbox Code Playgroud)