子类与父类中静态代码块、匿名代码块、构造器--他们的运行顺序是咋样的呢?
下文笔者讲述子类和父类中静态代码块,匿名代码块,构造器的运行顺序简介说明,如下所示
静态代码块-匿名代码块-构造器的运行顺序
父类静态代码块-->>子类静态代码块-->>父类匿名代码块-->>父类构造器-->>子类匿名代码块-->>子类构造器
注意事项:
静态代码块在初始化时会被调用
匿名代码块与构造器对象创建时才会调用
例:代码块的运行顺序示例
父类
public class InitSuper {
static {
System.out.println("InitSuper static{}");
}
{
System.out.println("InitSuper {}");
}
public InitSuper() {
super();
System.out.println("InitSuper Init()");
}
}
子类
public class InitSub extends InitSuper{
static {
System.out.println("InitSub static{}");
}
{
System.out.println("InitSub {}");
}
public InitSub() {
super();
System.out.println("InitSub Init()");
}
public static void main(String[] args) {
new InitSub();
}
}
-----运行结果-----
InitSuper static{}
InitSub static{}
InitSuper {}
InitSuper Init()
InitSub {}
InitSub Init()
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


