객체간의 관계

Dohun Lee·2025년 8월 9일

C/C++

목록 보기
16/34

IS-A or HAS-A

객체지향 관계를 구현 할 때, 위 제목과 같은 두가지 관계를 고려하여서 객체들의 관계를 설계해야 한다.

IS-A

먼저 IS-A 관계는 A is a B라는 관계의 의미이다. 즉, A는 B이다 라는 의미인데, 이는 두 객체가 상속 관계에 있다는 것을 의미한다.

  • Cat is an animal
  • BMW is a car

위와 같이 -이 -이다 라는 관계를 가지는 객체들은 일종의 상속 관계, 즉 객체가 다른 객체의 하위 관계를 형성 하기 때문에, 이러한 경우엔 상속을 통해 객체간의 계층 구조를 형성 해야 한다.

HAS-A

다음으로 HAS-A 관계는 A has a B라는 관계의 의미이다. 즉, A라는 객체가 B라는 객체를 소유하는 관계인 것이다.

  • Car has an engine
  • Human has a car

위와 같이 하나의 객체가 다른 객체를 소유하는 형태의 관계를 나타낸다. 이는 IS-A가 객체 간의 계층 구조를 형성 하는 것과 달리, 객체 간의 소유 구조를 나타내는 형식이다.

profile
미국 공대생

0개의 댓글