1、子类
public class TestClassLife extends TestClassLifeSuper {
public TestClassLife() {
System.out.println("3.构造行数被访问");
}
{
System.out.println("2.初始化块被访问");
}
static {
System.out.println("1.静态初始化块被访问");
}
public void Go() {
System.out.println("4.方法体");
}
}
2、父类
public class TestClassLifeSuper {
public TestClassLifeSuper() {
System.out.println("3.父构造行数被访问");
}
{
System.out.println("2.父初始化块被访问");
}
static {
System.out.println("1.父静态初始化块被访问");
}
private static String a = "1";
public void Go() {
String b = a;
System.out.println("4.父方法体");
}
}
最终执行结果
1、父静态初始化块被访问
1、静态初始化块被访问
2、父初始化块被访问
3、父构造行数被访问
2、初始化块被访问
3、构造行数被访问
4、方法体
总统逻辑,先静态初始化,然后普通初始化,然后构造函数,先父后子。特殊情况,子类的静态初始化会紧跟父类的静态初始化
https://www.cnblogs.com/happyday56/category/539608.html