jiazz213453
jiazz213453
采纳率12.5%
2017-03-12 23:32 阅读 792
已采纳

求大神回答,static{}方法内部有输出,同时出现在父类和子类中

子类继承父类输出,同时有自己的方法进行输出,运行结果是按什么顺序输出的?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • 已采纳
    liyufei20082008 丨LYF丨 2017-03-13 02:42
    其实自己写个例子一下就看出来了
    

    class A {

    static {
        System.out.print("1");
    }
    
    public A() {
        System.out.print("2");
    }
    

    }

    classB extends A{

    static {
        System.out.print("a");
    }
    
    public B() {
        System.out.print("b");
    }
    

    }

    public class Hello {

    public static void main(String[] args) {
        A ab = new B();
        ab = new B();
    }
    

    }
    执行结果:1a2b2b。创建对象时构造器的调用顺序是:先初始化静态成员,然后调用父类构造器,再初始化非静态成员,最后调用自身构造器。

    点赞 评论 复制链接分享
  • caozhy 从今以后生命中的每一秒都属于我爱的人 2017-03-12 23:32

    看你的代码,如果是静态初始化块,那么先执行基类的,然后是派生类的。

    点赞 评论 复制链接分享

相关推荐