【Java】静态代码块、构造代码块、构造方法的执行顺序
2023年4月10日小于 1 分钟
1. 无继承关系
优先级:静态代码块 > 构造代码块 > 构造方法
class A {
static {
System.out.println("A 静态代码块");
}
{
System.out.println("A 构造代码块");
}
public A() {
System.out.println("A 构造方法");
}
}
public class Main {
public static void main(String[] args) {
new A();
}
}运行结果

2. 有继承关系
优先级:父类静态代码块 > 子类静态代码块 > 父类构造代码块 > 父类构造方法 > 子类构造代码块 > 子类构造方法
class B extends A {
static {
System.out.println("B 静态代码块");
}
{
System.out.println("B 构造代码块");
}
public B() {
System.out.println("B 构造方法");
}
}
public class Main {
public static void main(String[] args) {
new B();
}
}运行结果
