当前位置:编程学习 > JAVA >>

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

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

父类如下:

[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

补充:软件开发 , Java ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,