class Extends의 호출 스택 예시.
class GrandParents{
public GrandParents(){
System.out.print("grand-");
}
}
class Parents extends GrandParents{
public Parents(String type){
System.out.print(type);
}
}
public class Mount extends Parents{
public Mount(){
super("parent-");
new Parents("parent-");
}
public static void main(String[] args){
new Mount();
}
}
분석
- main 메서드가 호출 스택에 등록
- new Mount()로 클래스를 호출스택에 등록.
- super("parent-") 부모의 상속 정보를 자식 클래스에서 사용 가능.
- Parents가 호출 스택에 등록.
- GrandParents가 호출 스택에 등록
- 이제 Grandparents -> Parents 동작하고 super()의 작업을 종료.
- new Parents('parent-') 의 동작.
- 호출스택에 Parents -> GrandParents가 다시 push.
- 생성자를 호출하면서 GrandParents -> Parents -> Mount -> main 순서로 종료.
결과
grand-parent-grand-parent-