본문 바로가기

Java의 정석

클래스 간의 관계 2

클래스 간의 관계 결정하기

클래스를 작성할 때 상속관계를 맺어 줄 것인지 포함관계를 맺어 줄 것인지 결정하는 것은 혼란스러울 수 있다.

그럴 때는 ~은 ~이다(is a)~은 ~을 가지고 있다(has a)를 넣어서 문장을 만들어보면 클래스 간의 관계가 명확해진다.

class Circle {
    Point p = new Point();
    int r;
} // 포함 관계

class Circle extends Point {
    int r;
} // 상속 관계
  • 원(Circle)은 점(Point)이다.
  • 원(Circle)은 점(Point)을 가지고 있다.

이처럼 클래스를 가지고 문장을 만들었을 때 ~은 ~이다라는 문장이 성립한다면 서로 상속관계를 맺어주고 ~은 ~을 가지고 있다는 문장이 성립한다면 포함관계를 맺어 주면 된다.

 

  • 상속관계 - '~은 ~이다.(is a)'
  • 포함관계 - '~은 ~을 가지고 있다.(has a)'

 

[참조] - 남궁 성, JAVA의 정석, 도우출판, 2019

'Java의 정석' 카테고리의 다른 글

Object 클래스  (0) 2022.03.29
단일 상속(single inheritance)  (0) 2022.03.28
클래스 간의 관계 1  (0) 2022.03.24
상속  (0) 2022.03.23
객체 지향 개념 - 16 변수의 초기화  (0) 2022.03.22