一个类的静态代码块,构造代码块,构造方法的执行过程:
静态代码块 > 构造代码块 > 构造方法
静态的内容会随着类的加载而加载:
静态代码块的内容会优先执行
子类初始化之前先会进行父类的初始化
代码举例:
class TestA {
static {
System.out.println("父类中的静态代码块");
}
{
System.out.println("父类中的构造代码块");
}
public TestA(){
System.out.println("父类中的构造方法");
}
}
class TestB extends TestA{
static {
System.out.println("子类中的静态代码块");
}
{
System.out.println("子类中的构造代码块");
}
public TestB() {
System.out.println("子类中的构造方法");
}
}
class TestDemo {
public static void main(String[] args) {
TestB b = new TestB();
}
}
/*
编译执行后的结果为:
父类中的静态代码块
子类中的静态代码块
父类中的构造代码块
父类中的构造方法
子类中的构造代码块
子类中的构造方法
*/