상속은 객체 안에 부모 부분을 먼저 놓고 자식 부분을 덧붙이는 구조다

Dog가 Animal의 한 종류라면, Dog 객체는 Animal 멤버를 포함한 뒤 Dog만의 멤버를 추가합니다. 이 구조가 자연스러울 때 public 상속을 선택합니다.

클래스 정의
Base: Animal공통 상태: name, age
공통 동작: eat(), sleep()
Derived: Dog : public Animal추가 상태: breed
추가 동작: bark(), displayInfo()
Dog 객체 안의 배치
Animal 부분부모가 정의한 공통 멤버가 먼저 들어간다.
Dog 확장 부분자식이 추가한 멤버가 같은 객체 안에 붙는다.
질문
아니오
“Dog is an Animal”이 자연스러운가?
public 상속 후보
상속보다 합성을 먼저 검토
부모 인터페이스로 자식을 다뤄도 되는가?
다형성으로 확장 가능
코드 재사용 목적이면 위험