728x90
반응형

상속관계에서 객체 생성시 생성자의 호출 순서를 간단한 예제를 통해 알아보았다.

 

예제에서는 다음과 같이 3개의 클래스를 만들었다.

 

SuperClass
SubClass <- SuperClass (SuperClass 를 상속받는 SubClass)
SSubClass <- SubClass (SubClass 를 상속받는 SsubClass)

 

[SuperClass]

package com.constructorExam;

public class SuperClass {
    public SuperClass() {
        System.out.println("Superclass 생성");
    }
}

 

[SubClass]

package com.constructorExam;

public class SubClass extends SuperClass {
    public SubClass() {
        System.out.println("Subclass 생성");
    }
}

 

[SsubClass]

package com.constructorExam;

public class Ssubclass extends SubClass {
    public Ssubclass() {
        System.out.println("SsubClass 생성");
    }
}

 

d[Main Class]

package com.constructorExam;

public class Main {

    public static void main(String[] args) {
	// write your code here
        Ssubclass ssub = new Ssubclass();
    }
}

 

[출력 결과]

Superclass 생성
Subclass 생성
SsubClass 생성

 

 

메인에서 SsubClass 인스턴스를 생성했다.
SsubClass 가 생성되면서 SubClass 를 호출하고
SubClass 가 생성되면서 SuperClass 를 호출했다.

 

그리고 출력은 Superclass -> SubClass -> SsubClass 순서로 실행되는 것을 확인할 수 있었다.

 

 

정리해보면

[호출 순서]
SsubClass -> SubClass -> SuperClass

[실행 순서]
SuperClass -> SubClass -> SsubClass

 

728x90
반응형
복사했습니다!