우리가 일반적으로 알고 있는 상속은 부모가 자식에게 재산 등을 물려주는 것을 말한다. 1억을 상속 받았다면 이제 1억은 자식 마음대로 사용할 수 있다. 자바의 상속도 유사하다.

 

 상속을 사용하는 형식은 extends이다.

 

 class A extends B{ } 라고하면 class AB의 값을 상속한다는 의미다.

 

 A라는 문서를 만들어야 하는데 문서에는 1~5까지 항목이 들어간다고 가정해보자. 그런데 1, 2, 3 항목은 모든 문서에 공통적으로 들어간다. 문서를 만들 때 A,B,C를 매번 입력하기는 번거로우니 B라는 클래스에 1,2,3번 항목을 미리 담아둔다. 이제 A문서를 만들기 위해서는 4,5번 항목만 입력하고 1,2,3번 항목은 클래스 B에서 상속만 받아오면 빠른 업무처리가 가능하다.


 위의 B클래스는 부모 객체의 역할을 한다. 부모 객체가 먼저 생성이 되어야 이후에 자식객체가 사용을 할 수 있다. 부모가 없으면 자식도 없다.’ 라고 이해하면 쉽다. 아래 예제는 D1, D2, D3 그리고 InheritanceEx02 간의 상속 관계를 나타낸다.


class D1{

 D1(){

 System.out.println("D1 생성자 확인");

 }

}

 

class D2 extends D1{

 D2(){

 System.out.println("D2 생성자 확인");

 }

}

 

class D3 extends D2{

 D3(){

 System.out.println("D3 생성자 확인");

 }

}

 

class InheritanceEx02 extends D3{

 InheritanceEx02(){

 System.out.println("InheritanceEx02 생성자 확인");

}

 

public static void main(String[] args){

 InheritanceEx02 obj = new InheritanceEx02();

 }

}

 

결과


D1 생성자 확인

D2 생성자 확인

D3 생성자 확인

InheritanceEx02 생성자 확인

 


 풀이를 하자면 맨 아래 main에서 실행을 할 때 new InheritanceEx02()부터 위로 타고 올라가서 D1번부터 순서대로 출력이 된다. , InheritanceEx02 -> D3 -> D2 -> D1 순서로 상속관계를 따라가서 가장 상위에 있는 D1부터 순서대로 출력되는 것이다.

 


+ Recent posts