상속

백다진·2023년 12월 22일
0

has a, is a 상속

객체지향 프로그래밍을 시작하면서 객체를 이리저리 주고 받던 방식에서 벗어나 객체의 인스턴스 메소드를 사용하여 처리하는 방식으로 변경 및 객체 간 상속관계에 대해 알아본다.

has a 상속

시 제품 완성을 위해 부품을 필요로하는 개념이라고 한다면

is a 상속

시에는 완성된 혹은 그대로의 틀을 가지고 수정하거나(Override) 추가하여 재사용하는 개념이라고 할 수 있다.

  • 동적 바인딩, 부모 개체를 참조하여 자식 객체 생성
  • 정적 바인딩, 컴파일 시 바인딩

이상의 개념을 가지고 아래의 오브젝트 다이어그램을 설명한다.

주체(사용자)의 대리인 main함수를 생략

MenuUI 객체 생성과 동시에 생성자를 통해 MenuRepository 객체가 생성된다.
이를 Composition has a 집합관계라고 할 수 있다.

MenuList 객체 생성과 동시에 Menu의 집합(배열)이 생성되는데, 이때 생성자를 통해 생성되나, 이때 배열 내부는 null로 초기화되어 있으므로 실제 객체는 없다.
이를 Aggregation has a 집합관계라고 할 수 있다.

이때 좀 더 상위의 주체가 하위에 있는 대상을 가진다(has)는 부분에서 종속되는 대상은 Dependency 로 표현한다.

profile
awsome

0개의 댓글