测试代码如下
public class Children extends Parent {
public Children() {
System.out.println("空子类构造器");
}
static {
System.out.println("子类静态代码块");
}
{
System.out.println("子类构造代码块");
}
}
public class Parent {
public Parent() {
System.out.println("空父类构造器");
}
static {
System.out.println("父类静态代码块");
}
{
System.out.println("父类构造代码块");
}
}
测试代码:
public class Parent {
public Parent() {
System.out.println("空父类构造器");
}
static {
System.out.println("父类静态代码块");
}
{
System.out.println("父类构造代码块");
}
}
执行结果如下
父类静态代码块
子类静态代码块
父类构造代码块
空父类构造器
子类构造代码块
空子类构造器
父类构造代码块
空父类构造器
子类构造代码块
空子类构造器
总结:顺序是:父类静态代码块-》子类静态代码块-》父类构造代码块-》父类构造器-》子类构造代码块-》空子类构造器
当再次调用的时候 依然要调用父类构造代码块和父类构造器-》然后子类构造代码块-》子类构造器
网友评论