FireMonster 클래스와 IceMonster 클래스를 각각 Character 클래스를 상속받아 구현할지, 같은 몬스터이므로 Monster 클래스라는 부모 클래스를 따로 둘지 고민해야 합니다. 설명을 읽어 보면 추가되는 멤버도 겹치고, fireball() 메서드를 제외한 나머지 메서드도 겹칩니다. 그렇다면 공통되는 부분을 기본 클래스로 만들고 이를 상속받는 것이 좋을 것 같습니다. 이러한 내용을 그림으로 표현하면 그림 7-5와 같습니다.
그림 7-5 Character 클래스 디자인 ②