Item18 - 상속보다는 컴포지션을 사용하라
*주의! 여기서 상속은 클래스가 다른 클래스를 확장하는 구현 상속을 말한다.(인터페이스x) 상속은 코드 재사용성을 높여주지만, 항상 최선은 아니다. 상위 클래스와 하위 클래스를 모두 같은 개발자가 통제하는 패키지 안에서라면 상속도 안전할 수 있다. 확장할 목적으로 설계되었고 문서화도 잘 된 클래스도 안전하다. 하지만 일반적인 구체 클래스를 패키지 경계를 넘어 상속하는 일은 위험하다. 메서드 호출과 달리 상속은 캡슐화를 깨뜨린다. 상위 클래스가 어떻게 구현되느냐에 따라 하위 클래스의 동작에 이상이 생길 수 있다. 이러한 이유로 상위 클래스 설게자가 확장을 충분히 고려하고 문서화도 제대로 해두지 않으면 하위 클래스는 상위 클래스의 변화에 맞춰 수정돼야함 한다. 예제코드 // 코드 18-1 잘못된 예 - 상속..
2023.11.30