Java父子类中静态代码块与构造函数的执行顺序

时间:2021-09-23 19:29:51

Java父子类中静态代码块与构造函数的执行顺序

基类:

public class BaseClass {

static {
System.out.println("父类-->静态代码块");
}

public BaseClass() {
System.out.println("父类-->构造函数");
}

{
System.out.println("父类-->非静态代码块");
}

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new SubClass();
}

}

子类:

public class SubClass extends BaseClass {

static {
System.out.println("子类-->静态代码块");
}

{
System.out.println("子类-->非静态代码块");
}

public SubClass() {
System.out.println("子类-->构造函数");
}
}

执行顺序:

父类-->静态代码块
子类-->静态代码块
父类-->非静态代码块
父类-->构造函数
子类-->非静态代码块
子类-->构造函数