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://www.hiunique.com/java/114.html)
来自:你好创造者