[이펙티브 자바] 아이템4

hyng·2022년 11월 22일
0

이펙티브 자바

목록 보기
4/13

인스턴스화를 막으려거든 private 생성자를 사용하라


정적 멤버만 담은 유틸리티 클래스는 인스턴스로 만들어 쓰려고 설계한 게 아니다.

추상 클래스로 만드는 것으로 인스턴스화를 막을 수는 없다. 추상 클래스를 상속하면 인스턴스화가 얼마든지 가능하다.

abstract class Cup {
  private final int size = 0;
}

class GlassCup extends Cup {
}

Cup cup = new GlassCup();

어떤 생성자도 만들지 않으면 컴파일러는 자동으로 기본 생성자를 생성해 주기 때문에 private 생성자를 만들어주어야 한다.

profile
공부하고 알게 된 내용을 기록하는 블로그

0개의 댓글