JAVA静态初始化块,初始化块,构造器调用顺序

来源:互联网 发布:mac个人文件夹在哪里 编辑:程序博客网 时间:2024/05/03 01:30

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

父类如下:

[java] view plaincopy
  1. package test.jamin;  
  2. /** 
  3.  * ClassName:Father 
  4.  * 
  5.  * @author   wangjieming 
  6.  * @version  1.0 
  7.  * @since    v1.0 
  8.  * @Date     2012-7-2 下午2:13:57  
  9.  */  
  10. public class Father {  
  11.   
  12.     static{  
  13.         System.out.println("Father Static Block");  
  14.     }  
  15.       
  16.     {  
  17.         System.out.println("Father Block");  
  18.     }  
  19.       
  20.     public Father(){  
  21.         System.out.println("Father Constructor");  
  22.     }  
  23.       
  24.       
  25. }  


子类如下:

[java] view plaincopy
  1. package test.jamin;  
  2. /** 
  3.  * ClassName:Child 
  4.  * 
  5.  * @author   wangjieming 
  6.  * @version  1.0 
  7.  * @since    v1.0 
  8.  * @Date     2012-7-2 下午2:16:42  
  9.  */  
  10. public class Child extends Father{  
  11.   
  12.       
  13.       
  14.     static{  
  15.         System.out.println("Child Static Block");  
  16.     }  
  17.       
  18.     {  
  19.         System.out.println("Child Block");  
  20.     }  
  21.       
  22.     public Child(){  
  23.         System.out.println("Child Constructor");  
  24.     }  
  25.       
  26.     public static void main(String[] args) {  
  27.         Child c = new Child();  
  28.     }  
  29.       
  30. }  


分析:

       子类继承父类:

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

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

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

运行结果如下:

原创粉丝点击