728x90
상속용 클래스를 설계하기란 결고 만만치 않다. 클래스 내부에서 스스로를 어떻게 사용하는지(자기사용 패턴) 모두 문서로 남겨야 하며, 일단 문서화한 것은 그 클래스가 쓰이는 한 반드시 지켜야 한다. 그러지 않으면 그 내부 구현 방식을 믿고 활용하던 하위 클래스를 오동작하게 만들 수 있다. 다른 이가 효율 좋은 하위 클래스를 만들 수 있도록 일부 메서드를 protected로 제공해야 할 수도 있다. 그러니 클래스를 확장해야 할 명확한 이유가 떠오르지 않으면 상속을 금지하는 편이 나을 것이다. 상속을 금지 하려면 클래스를 final로 선언하거나 생성자 모두를 외부에서 접근할 수 없도록 만들면 된다.
728x90
'책 > EFFECTIVE JAVA' 카테고리의 다른 글
[클래스와 인터페이스]아이템21. 인터페이스는 구현하는 쪽을 생각해 설계하라 (0) | 2024.10.11 |
---|---|
[클래스와 인터페이스]아이템20. 추상 클래스보다는 인터페이스를 우선하라 (0) | 2024.10.11 |
[클래스와 인터페이스]아이템18. 상속보다는 컴포지션을 사용하라 (1) | 2024.10.08 |
[클래스와 인터페이스]아이템17. 변경 가능성을 최소화하라 (0) | 2024.07.25 |
[클래스와 인터페이스]아이템16. public클래스에서는 public 필드가 아닌 접근자 메서드 사용하라. (0) | 2024.07.23 |