11.방치된 상속물 Refused Bequest

하위 클래스가 상속 클래스로 부터 상속 받은 메소드 혹은 데이터를 더이상 쓰지 않거나 필요없을땐 메소드, 필드 하향 기법을 사용하라.

출처: http://itmore.tistory.com/entry/-코드의-구린내리팩토링 [IT모아]

해결방법

  1. 상속이 이해되지 않고 서브 클래스가 실제로 수퍼 클래스와 공통점이 없으면 상속을 제거하여 상속을 위임으로 대체합니다.
  2. 상속이 적절한 경우, 서브 클래스의 불필요한 필드 및 메서드를 삭제합니다. 부모 클래스의 하위 클래스에서 필요한 모든 필드와 메서드를 추출하고 새 하위 클래스에 넣은 다음 두 클래스를 모두 상속하도록 설정합니다. (Extract SuperClass)