조합1 [Effective Java] 아이템18 상속보다는 컴포지션을 사용하라 상속(Inheritance)의 위험성상속은 코드를 재사용하는 강력한 수단이지만, 항상 최선은 아니다.상위 클래스와 하위 클래스가 모두 같은 개발자가 통제하는 패키지 안에서라면 상속도 안전한 방법이다.확장할 목적으로 설계되었고 문서화가 잘 된 클래스라면 마찬가지로 안전하다. 하지만 일반적으로 구체 클래스를 다른 패키지의 구체 클래스를 상속하는 일은 위험하다. 왜 위험할까? 메소드 호출과 달리 상속은 캡슐화를 깨트린다. 상위 클래스가 어떻게 구현되느냐에 따라서 하위 클래스의 동작에 이상이 생길 수 있다. @Getterpublic class InstrumentedHashSet extends HashSet { private int addCount = 0; public InstrumentedHashS.. 2024. 11. 5. 이전 1 다음