class Fulei {
public Fulei() {
System.err.println("1父类构造函数");
}
static {
System.err.println("2父类静态代码块");
}
{
System.err.println("3父类构造代码块");
}
public static void main(String[] args) {
new Zilei();
}
}
class Zilei extends Fulei{
public Zilei() {
// TODO Auto-generated constructor stub
System.err.println("4子类构造函数");
}
static {
System.err.println("5子类静态代码块");
}
{
System.err.println("6子类构造代码块");
}
}
执行结果是:
2父类静态代码块
5子类静态代码块
3父类构造代码块
1父类构造函数
6子类构造代码块
4子类构造函数
不仅父类的静态代码块在父类构造代码块之前执行,连子类的静态代码块也在父类的构造代码块之前执行。
|
|