자바의 정석 - 기초편

클래스 간의 관계, 상속과 포함

ODaram 2022. 8. 16. 17:44

▶ 포함(composite) 이란?

- 클래스의 멤버로 참조변수를 선언하는 것

좌)Point와 관계없음  우) Circle이 Point를 포함하는 관계

▶ 클래스 간의 관계 결정하기

       상속관계    '~은 ~이다. (is-a)'

       포함관계    '~은 ~을 가지고 있다. (has-a);

 Q. Point 라는 클래스가 있을 때 Circle 클래스를 만들 때 상속 or 포함?
class Point {
      int x;
      int y;
}
>> 1번 포함
class Circle {
    Point c = new Point();
    int r;
}
>> 2번 상속
class Circle extends Point {
   int r;
}
모르겠을 땐 문장을 만들어보아라
1번 포함 : 원(Circle)은 점(Poitn)을 가지고있다. - Circle has a Point    (O)
2번 상속 : 원(Circle)은 점(Point) 이다. - Circle is a Point.                    (X)
대부분 상속보다는 포함을 사용함