[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️⃣ 코드에서의 적용
  • ShrimpBurgerBurger상속받아 확장
  • BurgerSetBurgerCoke컴퍼지션으로 포함
  • 세트 메뉴 같은 조합은 컴퍼지션이 더 적절함

✅ 결론

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

harimmon