inblog logo
|
harimmon
    자바

    [Java] 64. 상속 vs 컴퍼지션 정리

    백하림's avatar
    백하림
    Feb 17, 2025
    [Java] 64. 상속 vs 컴퍼지션 정리

    ✅ 핵심 요약

    1️⃣ 상속 (Inheritance)
    • is-a 관계: ShrimpBurger is a Burger
    • 코드 재사용성이 높지만, 유연성이 떨어지고 유지보수가 어려울 수 있음
    • 부모 클래스의 변경이 자식 클래스에 영향을 미침
    2️⃣ 컴퍼지션 (Composition)
    • has-a 관계: BurgerSet has a Burger and Coke
    • 여러 객체를 조합하여 유연하게 설계 가능
    • 클래스 간의 결합도를 낮추어 유지보수가 쉬움
    3️⃣ 코드에서의 적용
    • ShrimpBurger → Burger를 상속받아 확장
    • BurgerSet → Burger와 Coke를 컴퍼지션으로 포함
    • 세트 메뉴 같은 조합은 컴퍼지션이 더 적절함

    ✅ 결론

    • 공통 기능을 공유하는 경우 → 상속
    • 유연한 조합이 필요한 경우 → 컴퍼지션
    • 상황에 맞게 두 개념을 적절히 사용하면 더 좋은 객체 지향 설계를 할 수 있다!
    Share article

    harimmon

    RSS·Powered by Inblog