컴포지션

    상속보다 컴포지션을 사용해야하는 이유

    [Java] 컴포지션(Composition) 컴포지션 : 기존 클래스가 새로운 클래스의 구성요소가 되는 것 상속(Inheritance)의 단점을 커버할 수 있는 컴포지션에 대해 알아보자 우선 상속(Inheritance)이란, 하위 클래스가 상위 클래스의 특성을 재정의 한 것을 말한다. 부모 클래스의 메서드를 오버라이딩하여 자식에 맞게 재사용하는 등, 상당히 많이 쓰이는 개념이면서 활용도도 높다. 하지만 장점만 존재하는 것은 아니다. 상속을 제대로 사용하지 않으면 유연성을 해칠 수 있다. 구현 상속(클래스→클래스)의 단점 1) 캡슐화를 위반 2) 유연하지 못한 설계 3) 다중상속 불가능 오류의 예시 다음은, HashSet에 요소를 몇 번 삽입했는지 count 변수로 체크하여 출력하는 예제다. public ..