상속vs컴포지션
-
[JAVA] 컴포지션 vs 상속OOP & JAVA 2021. 11. 1. 17:39
클래스 설계시 상속으로 구현할지 컴포지션으로 구현할지 고민하다 이 부분을 공부해보았는데 생각보다 다양한 관점이 존재해서 한번 정리해보려고합니다. 보통 상속으로 구현한 부분은 컴포지션으로도 구현이 가능하고 반대로 상속으로 구현한부분은 컴포지션으로도 구현 가능합니다. 그렇다면 어떤 기준으로 상속과 컴포지션을 결정해야할까요? 컴포지션이란? 한 클래스가 다른 클래스를 포함하고 있는 경우를 말합니다. 아래 코드에서 Car 클래스는 Engin 클래스 타입의 맴버변수를 가짐으로서 Engin 은 Car의 컴포지션으로 볼 수 있습니다. public class Car { int price; Engin engin; String color; public Car(int price, Engin engin, String color..