- is-a
- 타입 A가 B의 파생 클래스임을 의미
- 하위 클래스 사용 중 상위 클래스의 수정이 가해지면 코드가 손상됨
- 밀접한 관계가 있기때문에 클래스의 계층 구조에서 안정적인 기반을 다질 수 있음
- 상위 클래스의 기능을 하위 클래스에서 상속받을 수 있다
- has-a
- 객체 A가 B에 속하여, A의 메서드를 B에서 실행하는 것을 의미
- 이 방식에 결합된 클래스는 느슨한 결합이 된다
- 상속에 비해 수정이 가해지더라도 코드 손상이 없거나 적다
- is-a 관계인지 애매한 경우 has-a 관계로 구현하는 것이 낫다