JAVA中继承时静态代码块、构造代码块与构造方法的执行顺序
程序员文章站
2022-05-14 12:04:18
...
用一个题来讲解一下吧!
public class MyTest234 {
public static void main(String[] args) {
Zi z=new Zi();//请执行结果
}
}
class Fu{
static {
System.out.println("静态代码块Fu");
}
{
System.out.println("构造代码块Fu");
}
public Fu(){
System.out.println("构造方法Fu");
}
}
class Zi extends Fu{
static {
System.out.println("静态代码块Zi");
}
{
System.out.println("构造代码块Zi");
}
public Zi(){
super();
System.out.println("构造方法Zi");
}
}
输出:
解答: 当new子类对象时先父类加载进内存,父类一进内存就先执行静态代码块,父类进完内存后子类也加载进内存,即执行子类的静态代码块。之后本着构造代码块优先于构造代码执行,同时先执行父类的构造方法。
上一篇: php调用mysql存储过程
下一篇: linux中expect的介绍与使用示例