forwarding method

    상속보다는 컴포지션을 사용하라 - [4장. 클래스와 인터페이스(아이템18)]

    상속은 코드를 재사용하는 강력한 수단이지만, 항상 최선은 아니다. 잘못 사용하면 오류를 내기 쉬운 소프트웨어를 만들게 된다. 상위 클래스와 하위 클래스를 모두 같은 프로그래머가 통제하는 패키지 안에서라면 상속도 안전한 방법이다. 확장할 목적으로 설계되었고 문서화도 잘 된 클래스도 마찬가질 안전하다. 하지만 일반적인 구체 클래스를 패키지 경계를 넘어, 즉 다른 패키지의 구체 클래스를 상속하는 일은 위험하다. 여기서 다룰 '상속'은 클래스가 다른 클래스를 확장하는 '구현 상속'을 말한다. 클래스가 인터페이스를 구현하거나 인터페이스가 다른 인터페이스를 확장하는 '인터페이스 상속'과는 무관한 것이다. 메서드 호출과 달리 상속은 캡슐화를 깨뜨린다. 문제가 발생하는 2가지 이유에 대해서 알아보고 해결책에 대해서 알..