대부분의 사람들은 코드 재사용을 상속의 주된 목적이라고 생각하지만 이것은 오해다.

코드 재사용을 위해서는 상속보다 합성(Composition)이 더 좋은 방법이다

합성

class MyClass {
	private CompClass comClass; // 다른 객체를 자신의 인스턴스 변수로 포함

	// ...
}

상속의 문제점

상속은 캡슐화를 위반한다

설계가 유연하지 않다

상속의 문제점 예시 1) 불필요한 인터페이스 까지 상속된다.

java.util 패키지의 Stack