关于JAVA静态初始化块,初始化块,构造器调用顺序的问题
3496 点击·0 回帖
![]() | ![]() | |
![]() | 一个简单的关于初始化块,静态初始化块,构造器的执行顺序的小例子,请大家参考: 父类如下: [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 | |
![]() | ![]() |