Java-构造方法调用顺序

public class TestSuper02 { 
public static void main(String[] args) {
    System.out.println("开始创建一个ChildClass对象......");
    new ChildClass();
}
}
class FatherClass {
public FatherClass() {
    System.out.println("创建FatherClass");
}
}
class ChildClass extends FatherClass {
public ChildClass() {
    System.out.println("创建ChildClass");
}
}

执行结果:
开始创建一个ChildClass对象…
创建FatherClass
创建ChildClass
要点:
①关于构造方法结合继承概念的调用,有如下的顺序,函数入口总是main,先执行System.out.println(“开始创建一个ChildClass对象…”)语句;然后我们调用了ChildClass这个类的构造方法,然后由于虽然在public ChildClass{}这个构造方法内并只写了System.out.println(“创建ChildClass”);但是其第一步必定执行super();于是去执行其父类FatherClass类的构造方法,同理,FatherClass类构造方法执行的时候又得先得执行默认的Object类的构造方法,不过其没有相应的语句输出。
②总结执行顺序:构造方法第一句总是:super(…)来调用“此类的父类”对应的构造方法。所以,流程就是:先向上追溯到Object,然后再依次向下执行类的初始化块和构造方法,直到当前子类为止。

你可能感兴趣的:(Java-构造方法调用顺序)