본문 바로가기

[JAVA] 상속관계와 포함관계

인포꿀팁 발행일 : 2022-03-16

상속 관계

  • 기존의 클래스로 새로운 클래스를 작성하는 것(코드 재사용)
  • 두 클래스를 부모와 자식으로 관계를 맺어주는 것
  • 자손은 조상의 모든 멤버를 상속 받는다.(생성자, 초기화 블럭 제외)
  • 자손의 멤버 개수는 조상보다 적을 수 없다.(같거나 많다.)
  • 자손의 변경은 조상에 영향을 미치지 않는다. 

 

포함 관계

  • 포함이란:
  • 상속과 저장공간의 차이는 없지만 구조상의 차이가 있다.
package com.example.Inheritance;

class Point{
    int x;
    int y;
}

//상속 관계
class Circle extends Point{
    int z;
}

// 포함관계
class Cirtcle2 {
    Point p = new Point();
    int z;
}
public class InheritanceTest {
    public static void main(String[] args) {
        //상속 관계 설정시
        Circle c = new Circle();
        c.x=1;
        c.y=2;
        c.z=3;

        // 포함관계 설정시
        Cirtcle2 c2 = new Cirtcle2();
        c2.p.x=1;
        c2.p.y=2;
        c2.z=3;


    }
}

클래스 간의 관계 결정하기

  • 상속관계 : a는 b이다.
  • 포함관계 : a는 b를 가지고 있다.

 

단일 상속

  • java는 단일 상속만 허용한다.
//에러 발생

Class TvDVD extends Tv,DVD { // 조상은 하나만 허용



}
  • 비중이 높은 클래스 하나만 상속관계로, 나머지는 포함관계로 한다.

 

Object 클래스 - 모든 클래스의 조상

  • 부모가 없는 클래스는 자동적으로 Object 클래스를 상속받게 된다.(컴파일러가 자동으로 추가함)

댓글