상속
- SOLID 원칙에서 리스코프 치환 원칙은 상속 받은 자식 클래슨느 부모 클래스를 대체할수 있는 경우에만 상속해야 한다고 써 있습니다.
즉 부모클래스의 인스턴스를 자식 클래스의 인스턴스로 대체해도 프로그램 기능은 동일해야합니다.
- (overriding)상속은 캡슐화를 위반한다. 그렇지만 재사용성이 뛰어나다. (extends를 통한 상속 보다는 implement 추상 메소드나 인터페이스 상속을 추천한다는 얘기가 많습니다.)
- 상속은 결합도가 높아지게 됩니다.
- 하나의 기능을 추가할때, 수정하기 위해 불필요하게 많은 수의 클래스를 추가하거나 수정해야합니다.
결합
- 캡슐화를 유지하면서 코드를 재사용할수 있는 좋은 방법입니다.
- 객체가 변화 되더라도 영향이 적습니다.
- has a 관계로 다른 클래스들과 수평적인 관계가 됩니다.