java中首先是静态块先执行,然后非静态代码块,最后是构造函数
public class Parent {
static {
System.out.println("父类--静态代码块");
}
public Parent() {
System.out.println("父类--构造函数");
}
{
System.out.println("父类--非静态代码块");
}
public static void main(String[] args) {
new Child();
}
}
public class Child extends Parent {
static {
System.out.println("子类--静态代码块");
}
{
System.out.println("子类--非静态代码块");
}
public Child() {
System.out.println("子类--构造函数");
}
}
执行结果
父类--静态代码块
子类--静态代码块
父类--非静态代码块
父类--构造函数
子类--非静态代码块
子类--构造函数