상속을 고려한 설계와 문서화란?

상속을 고려해 설계하기

⇒ 위처럼, 클래스를 상속용으로 설계하려면 엄청난 노력이 들고 그 클래스에 생기는 제약도 많음

⇒ 상속용으로 설계하지 않는 클래스는 상속을 금지하자!!

상속을 금지하는 법

  1. 클래스를 final로 선언하기
  2. 모든 생성자를 private이나 package-private으로 선언하고 public 정적 팩터리를 만들어주기

표준 인터페이스를 구현하지 않았는데 상속이 필요하다면?