상속은 코드 재사용보다 대체 가능성과 수명 규칙을 먼저 통과해야 한다

public 상속은 부모 자리에 자식을 넣어도 된다는 강한 설계 약속이다.

is-aBase 자리에 Derived가 자연스러운가
공개 범위public 상속이 맞는 관계인가
수명Base 포인터 삭제 가능성
대안has-a 합성이 더 단순한가
점검 질문통과하면막히면
진짜 is-a인가?public 상속 후보합성으로 전환
Base API를 노출해도 되나?대체 가능성 확인private/protected 또는 합성
Base*로 삭제되나?virtual 소멸자 필요소유권 경로 단순화

핵심 상속은 코드 재사용이 아니라 대체 가능성, 공개 범위, 수명 계약을 통과할 때 선택한다.