一個簡單的關於初始化塊,靜態初始化塊,構造器的執行順序的小例子,請大傢參考:
父類如下:
[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