[JAVA] 서브클래싱을 막는 방법

서브클래싱(subclassing)을 막는 두가지 방법

1. class에 final 키워드로 두기

– 다음과 같이 public final class 로 두게 되면, extends가 되지 않는다. 

2. 모든 생성자를 private 로 두고 public static 으로 생성자 팩토리 메소드 제공.

– 1번 방법보다 좀더 유연한 방법이라고 한다. 유연한 이유는 Effective Java를 읽어보심이.(항목 1)

서브클래싱을 막는 이유는 지금은 내가 쓸때는 서브클래싱을 안하는데 라고 생각하지만, 만약 다른 사람이 쓴다고 생각하면, 사실 어떻게 쓸지 모르기 때문에 코드를 통해서 사용을 제한하는 것이다.