본문 바로가기

자바의 정석 정리

자바의 정석 - 7.1 상속

7.1.1 상속

  • 기존의 클래스를 재사용하여 새로운 클래스 작성
  • 확장(extends)
class Child extends Parent{}
  • 조상 클래스 : 부모(parent), 상위(super), 기반(base)
  • 자손 클래스 : 자식(child), 하위(sub), 파생된(derived)
  • 자식 클래스는 부모 클래스를 포함한다
  • 자식 클래스는 부모의 모든 멤버를 상속받는다.

7.1.2 간접조상 직접조상

  • 간접조상 : 자식 클래스가 상속을 받은 부모 클래스의 부모 클래스(조부모)
  • 직접조상 : 자식 클래스가 상속을 받은 부모 클래스
class Parent{}
class Child extends Parent {}
class Child2 extends Parent {}
class GrandChild extends Child {}

/*
GrandChild를 기준으로 Parent가 간접조상
GrandChild를 기준으로 Child가 직접조상

클래스간의 형제 관계 같은건 없다. 따라서  Child과 Child2는 아무런 관계가 없다.
*/

7.1.3 포함관계

  • 한 클래스의 멤버변수로 다른 클래스 타입의 참조변수를 선언하는 것
class Cycle{
    Point c = new Point();
}
class Point{}

7.1.4 클래스간 관계 설정하기

  • 상속관계 : is-a(
    다)
  • 포함관계 : has-a(
    을 가지고 있다.)
//원(Cycle)은 도형(Shape)이다(is-a)
class Cycle extends Shape{}

//원(Cycle)은 점(Point)을 가지고 있다(has-a)
class Cycle{
    Point c = new Point();
}