Skip to content

Latest commit

 

History

History
12 lines (11 loc) · 693 Bytes

is-a-vs-has-a.md

File metadata and controls

12 lines (11 loc) · 693 Bytes

is-a vs. has-a

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