본문 바로가기
개발/JAVA

[2주차] 상속 클래스 실행순서

by Remover 2020. 2. 15.
반응형

Parent.java

package app;

public class Parent{
    public String nation;

    public Parent(){
        this("대한민국");
        System.out.println("Parent() Call");
    }

    public Parent(String nation){
        this.nation = nation;
        System.out.println("Parent(String nation) Call");
    }
}

 

Child.java

package app;

public class Child extends Parent{
    private String name;

    public Child(){
        this("홍길동");
        System.out.println("Child() Call");
    }

    public Child(String name){
        this.name = name;
        System.out.println("Child(String name) Call");
    }
}

 

다음과 같은 Java 프로그램이 존재할 때, 과연 각 클래스의 생성자는 어떤 순서로 생성될까요?

 

정답은!!!

 

아래 사진과 같습니다.

 

Child는 Parent를 상속하고 있는 클래스로 생성 시 , Parent 객체가 생성됩니다. 다만, Parent의 Default 생성자 안에는 자신의 생성자에 String Parameter 값을 전달해서 호출하는 소스코드가 존재합니다.

 

따라서 순서는 Parent(nation) -> Parent -> Child(name) -> Child 순으로 호출되게 됩니다!

 

 

 

위 내용은 혼자공부하는 자바 책에 나오는 내용으로 자세한 책 내용은 아래를 참고해주세요!

http://www.hanbit.co.kr/store/books/look.php?p_code=B5635758676

댓글