처리중입니다. 잠시만 기다려주세요.
TTJ 코딩클래스
정규반 단과 자료실 테크 뉴스 코딩 퀴즈

프로그래밍에서 '상속(Inheritance)'과 '합성(Composition)'의 차이점은?

보통 freeCodeCamp
보기 및 정답
A 상속과 합성은 코드를 재사용하는 동일한 개념이며, 문법적 표현 방식만 다를 뿐 설계적 차이가 없으므로 어떤 방식을 사용하든 결과는 같고 볼 수 있다
B 상속은 'is-a' 관계(~이다)로 부모 클래스를 확장하고, 합성은 'has-a' 관계(~을 가지다)로 객체를 내부에 포함하여 기능을 재사용한다
C 합성은 객체를 내부에 포함하는 방식이므로 코드를 재사용하는 것이 불가능하며, 재사용이 필요하면 반드시 상속을 사용해야 한다
D 상속은 코드의 재사용과 확장에서 합성보다 항상 좋은 설계이며, 가능하면 상속을 우선 사용해야 올바른 객체지향 설계이다

해설

상속(Dog is-a Animal)은 부모 클래스의 구현을 물려받지만 강한 결합을 만들 수 있습니다. 합성(Car has-a Engine)은 필요한 기능을 가진 객체를 포함하여 더 유연한 설계가 가능합니다. GoF 디자인 패턴은 '상속보다 합성을 선호하라(Favor composition over inheritance)'고 권장합니다.

코딩, 제대로 배우고 싶다면?

개념 확인은 퀴즈로, 실력은 실전 프로젝트로.
투더제이 코딩클래스에서 시작하세요.

정규반 살펴보기