`
guiven
  • 浏览: 27743 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

类继承中构造方法与static块调用顺序浅析【转】

阅读更多




1) 类中Static{}代码段会在该类第一次访问里被调用,并且仅被调用一次

2) 由于类中构造方法会默认地或显示的调用父类的构造方法,这样类在实例化时(即调用构造器方法),会优先调用构造器方法。

如下程序:

class Firework{
    static {
        System.out.println("Hello" );
    }
    public Firework () {
        System.out.println("Firework 0" );
    }
}

class Fountain extends Firework {
    static {
        System.out.println("World" );
    }
    public Fountain() {
        // TODO Auto-generated constructor stub
        System.out.println("Fountain 0" );
    }
}



现有一段代码如下:

Firework f = new Fountain();


运行输出为

Hello

World

Firework 0

Fountain 0

由输出可知Java对类中static块执行策略是:优先深度遍历所有类的static{}块,其次再遍历类的构造器

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics