灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:2705回复:0

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

楼主#
更多 发布于:2012-09-08 09:47


一个简单的关于初始化块,静态初始化块,构造器的执行顺序的小例子,请大家参考:
父类如下:
[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

喜欢0 评分0
游客

返回顶部