has-a 모델링 공부하는데 상속은 그냥 public 상속만 하면 멤버이름도 보고 한가지 클래스나 속성에 대해서 여러개 만들수 있는 장점이 있는거 같은데 

굳이 private나 protected 하는 이유 있음요? 

가상함수 재정의 한다던가 아니면 파생에 파생된 것들 그냥 바로 접근한다는 메리트 말고는...더 코딩에 손이가고 머리가 어지러워 지는거 같은데..

어떤 것이 있어요?