美文网首页
Java子类初始化顺序

Java子类初始化顺序

作者: WilsonMing | 来源:发表于2016-06-03 09:29 被阅读56次
  • 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-->
父类实例-->
父类构造方法-->
子类实例-->
子类构造方法-->

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

  • 父类静态实例或者父类静态代码块,代码的放置先后顺序,决定它们执行先后
  • 子类静态实例或者子类静态代码块
  • 父类实例
  • 父类构造方法
  • 子类实例
  • 子类构造方法
  • 那为什么了?后面研究下再跟进

相关文章

  • Java和Kotlin类的初始化顺序

    Java Java程序初始化的顺序:父类静态变量 -> 父类静态代码块 -> 子类静态变量 -> 子类静态代码块 ...

  • Java子类初始化顺序

    Print.java Person.java Child.java 输出结果 ->很显然,子类初始化的过程: 父类...

  • 构造器内部的多态方法的行为

    上一篇 :Java类初始化顺序 上一节我们简单总结了类的初始化顺序。父类(静态变量、静态初始化块)>子类(静态变量...

  • Java创建子类——初始化顺序

    1、前记 这个问题非常频繁的出现各个公司的Java笔试题中。 其实这个问题我一点都不陌生,现在还清楚的记者当初看T...

  • Java知识点总结

    Java继承关系初始化顺序 父类的静态变量-->父类的静态代码块-->子类的静态变量-->子类的静态代码快-->父...

  • 静态内部类实现懒加载单例模式

    代码 为什么 Java程序的初始化顺序依次是:父类静态变量-->父类静态代码块-->子类静态变量-->子类静态代码...

  • Java 继承(1)

    Java中只允许单继承 2.继承关键字:extends 3.继承初始化顺序:(1)初始化父类再初始化子类(2)先执...

  • java相关零碎知识

    java初始化,加载顺序: 父类的静态成员变量,父类静态代码块,子类的静态成员变量,子类的静态代码块,父类非静态成...

  • java中的继承

    继承的关键之是extends子类 extends 父类 继承的初始化顺序 初始化父类再初始化子类 先执行初始化对象...

  • 初始化执行顺序

    Java初始化的顺序如下: 父类的静态变量 父类的静态代码块 子类的静态变量 子类的静态代码块 父类的非静态变量...

网友评论

      本文标题:Java子类初始化顺序

      本文链接:https://www.haomeiwen.com/subject/doskdttx.html