Java子类初始化顺序

  • Print.java
public class Print {
 public Print (String print) {
  System.out.println(print);
 }
}
  • Person.java
public class Person {

 private static Print printLog = new Print("父类静态实例1-->");
 private Print log = new Print("父类实例-->");
 static {
  Print printLog = new Print("父类静态块-->");
 }
 private static Print print = new Print("父类静态实例2-->");
 public Person(){
  new Print("父类构造方法-->");
 }
 
 public static void print() {
  Print printLog = new Print("父类静态方法-->");
 }
 private static Print printLog3 = new Print("父类静态实例3-->");
}
  • Child.java
public class Child extends Person {

 private static Print printLog = new Print("子类静态实例1-->");
 private Print log = new Print("子类实例-->");
 static {
  Print printLog = new Print("子类静态块-->");
 }
 private static Print print = new Print("子类静态实例2-->");

 public Child() {
  new Print("子类构造方法-->");
 }

 public static void print() {
  Print printLog = new Print("子类静态方法-->");
 }

 private static Print printLog3 = new Print("子类静态实例3-->");

 public static void main(String[] args) {
  new Child();
 }
}
  • 输出结果
父类静态实例1-->
父类静态块-->
父类静态实例2-->
父类静态实例3-->
子类静态实例1-->
子类静态块-->
子类静态实例2-->
子类静态实例3-->
父类实例-->
父类构造方法-->
子类实例-->
子类构造方法-->

->很显然,子类初始化的过程:

  • 父类静态实例或者父类静态代码块,代码的放置先后顺序,决定它们执行先后
  • 子类静态实例或者子类静态代码块
  • 父类实例
  • 父类构造方法
  • 子类实例
  • 子类构造方法
  • 那为什么了?后面研究下再跟进
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,898评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,314评论 19 139
  • 小编费力收集:给你想要的面试集合 1.C++或Java中的异常处理机制的简单原理和应用。 当JAVA程序违反了JA...
    八爷君阅读 10,123评论 1 114
  • java笔记第一天 == 和 equals ==比较的比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量...
    jmychou阅读 5,386评论 0 3
  • 吹牛 如有任何产品问题请通过下方的方式联系客服。 客服联系电话:13552157170 QQ:1184193604
    31b6a8cc3eec阅读 1,436评论 0 0