구현 재사용 목적일 때는 부적절
인터페이스 재사용 목적일 때(결국 타입 계층 만들 때)는 적절
이러는데
사실 코드 재사용 목적일때도 상황에 따라 트레이드오프 고려 가능한 부분임
상속의 구린내는 미래의 변경에 취약하다는게 핵심인데
반대로 변경에 유연한 코드는 그만큼 작성에 품이 많이들고 남이 이해하기 복잡해지는 경향이 있음
에측 가능한 변경이 없을 때는 충분히 선택 가능