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();
}
}
运行结果