分享

Java类初始化顺序

 WindySky 2017-05-31
Java代码  收藏代码
  1. package com.tongbanjie.trade.test.base;  
  2.   
  3. public class Son extends Father{  
  4.       
  5.     private static Member staticMember = new Member("子类静态成员变量初始化");  
  6.       
  7.     private Member member = new Member("子类普通成员变量初始化......");  
  8.   
  9.     static {  
  10.         System.out.println("子类静态代码块一....开始执行......");  
  11.     }  
  12.       
  13.     Son(String aa) {  
  14.         System.out.println("子类构造方法开始执行......");  
  15.     }  
  16.       
  17.     static {  
  18.         System.out.println("子类静态代码块二....开始执行......");  
  19.     }  
  20.       
  21.       
  22.     public static void main(String[] args) {  
  23.         new Son("aa");  
  24.     }  
  25. }  


Java代码  收藏代码
  1. package com.tongbanjie.trade.test.base;  
  2.   
  3. public class Father {  
  4.       
  5.     private static Member staticMember = new Member("父类静态成员变量初始化......");  
  6.       
  7.     private Member member = new Member("父类普通成员变量初始化......");  
  8.   
  9.     static {  
  10.         System.out.println("父类静态代码块开始执行......");  
  11.     }  
  12.       
  13.     Father() {  
  14.         System.out.println("父类无参构造方法开始执行.......");  
  15.     }  
  16.       
  17.     Father(String aa) {  
  18.         System.out.println("父类有参构造方法开始执行......");  
  19.     }  
  20. }  


Java代码  收藏代码
  1. package com.tongbanjie.trade.test.base;  
  2.   
  3. public class Member {  
  4.   
  5.     Member() {  
  6.         System.out.println("Member 默认构造方法开始执行.......");  
  7.     }  
  8.       
  9.     Member(String str) {  
  10.         System.out.println(str);  
  11.     }  
  12. }  


执行结果如下图:



分析结果可以知道
先执行父类静态代码区域(静态代码块和静态常量顺序执行),
再执行子类静态代码区域,
再执行父类普通成员变量,
再执行父类无参构造函数,
再执行子类普通成员变量,
再执行子类构造函数


由此得出Java初始化顺序结论:
1 继承体系的所有静态成员初始化(先父类,后子类)
2 父类初始化完成(普通成员的初始化-->构造函数的调用)
3 子类初始化(普通成员-->构造函数)


图示初始化顺序:


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多