关于JAVA静态初始化块,初始化块,构造器调用顺序的问题

2014-11-24 08:31:56 · 作者: · 浏览: 1

一个简单的关于初始化块,静态初始化块,构造器的执行顺序的小例子,请大家参考:

父类如下:

[java]
package test.jamin;
/**
* ClassName:Father
*
* @author wangjieming
* @version 1.0
* @since v1.0
* @Date 2012-7-2 下午2:13:57
*/
public class Father {

static{
System.out.println("Father Static Block");
}

{
System.out.println("Father Block");
}

public Father(){
System.out.println("Father Constructor");
}


}

子类如下:

[java]
package test.jamin;
/**
* ClassName:Child
*
* @author wangjieming
* @version 1.0
* @since v1.0
* @Date 2012-7-2 下午2:16:42
*/
public class Child extends Father{



static{
System.out.println("Child Static Block");
}

{
System.out.println("Child Block");
}

public Child(){
System.out.println("Child Constructor");
}

public static void main(String[] args) {
Child c = new Child();
}

}

分析:

子类继承父类:

先调用父类的静态初始化块,再调用子类的静态初始化块

--------------------------------分割线-----------------------------------

如果子类被实例化,调用父类初始化块,父类构造器;再调用子类初始化块,子类构造器

运行结果如下:


作者:jamin0107