인스턴스화를 막으려면 private 생성자를 사용해야 한다.
추상 클래스로 만드는 것으로는 하위 클래스를 만들어 인스턴스화 하면 되기때문에 인스턴스화를 막을 수 없다.
public class UtilityClass {
private UtilityClass() {
throw nes AssertionError();
}
}
모든 생성자는 명시적이든 묵시적이든 상위 클래스의 생성자를 호출하게 되는데, 이를 private 으로 선언 했기 때문에 상속을 불가능 하게 한다.
728x90
반응형
'Java & Kotlin > Effective Java' 카테고리의 다른 글
[Effective Java 3/E] Item 5. 의존 객체 주입 (0) | 2021.01.10 |
---|---|
[Effective Java 3/E] Item 3. private 생성자나 열거 타입으로 싱글턴 만들기 (0) | 2021.01.06 |
[Effective Java 3/E] Item 2. 빌더 패턴 (0) | 2021.01.05 |
[Effective Java 3/E] Item 1. 정적 팩터리 메서드 (0) | 2021.01.04 |