你好创造者

Java程序初始化的顺序

  最近在看java相关知识,毕竟之前主攻不是Java。
  Java的执行顺序如下:父类静态变量、父类静态代码块、子类静态变量、子类静态代码块、父类非静态变量、父类非静态代码块、父类构造函数、子类非静态变量、子类非静态代码块、子类构造函数。
  我自己测试写的范例如下:

class Father {
    static {
        System.out.println("Father static block");
    }
    {
        System.out.println("Father block");
    }
    public Father() {
        System.out.println("Father constructor");
    }
}

public class Son extends Father {
    static {
        System.out.println("Son static block");
    }
    {
        System.out.println("Son block");
    }
    public Son() {
        System.out.println("Son constructor");
    }
    public static void main(String args[]) {
        new Son();
    }
}

结果如下:
Father static block
Son static block
Father block
Father constructor
Son block
Son constructor


转载需经作者允许并注明出处(http://nit.hiunique.com/java/114.html)
来自:你好创造者

添加评论

icon_mrgreen.gificon_neutral.gificon_twisted.gificon_arrow.gificon_eek.gificon_smile.gificon_confused.gificon_cool.gificon_evil.gificon_biggrin.gificon_idea.gificon_redface.gificon_razz.gificon_rolleyes.gificon_wink.gificon_cry.gificon_surprised.gificon_lol.gificon_mad.gificon_sad.gificon_exclaim.gificon_question.gif