zoukankan      html  css  js  c++  java
  • java类的实例化顺序

    • 1. 父类静态成员和静态初始化块 ,按在代码中出现的顺序依次执行
    • 2. 子类静态成员和静态初始化块 ,按在代码中出现的顺序依次执行
    • 3. 父类实例成员和实例初始化块 ,按在代码中出现的顺序依次执行
    • 4. 父类构造方法
    • 5. 子类实例成员和实例初始化块 ,按在代码中出现的顺序依次执行
    • 6. 子类构造方法

     总结:父类静态成员和静态代码块->子类静态成员和静态代码块->父类非静态成员和非静态代码块->父类构造方法->子类非静态成员和非静态代码块->子类构造方法

    父类:

     1 public class A {
     2 
     3     public static String a=printStr("父类的静态变量");
     4     public String s = printStr("父类的非静态变量");
     5     static {
     6         printStr("父类的静态块");
     7     }
     8     {
     9         printStr("父类的非静态块");
    10     }
    11     public A(){
    12         printStr("父类构造方法");
    13     }
    14 
    15 
    16     public static String printStr(String str){
    17         System.out.println(str);
    18         return str;
    19     }
    20 }

    子类:

     1 public class B extends A {
     2 
     3     public static String b=printStr("子类的静态变量");
     4     public String st = printStr("子类的非静态变量");
     5    
     6     static {
     7         printStr("子类的静态块");
     8     }
     9     {
    10         printStr("子类的非静态块");
    11     }
    12     public B(){
    13         printStr("子类的构造方法");
    14     }
    15 
    16     //main
    17     public static void main(String[] args) {
    18         new B();
    19     }
    20 }

    运行结果:

    父类的静态变量
    父类的静态块
    子类的静态变量
    子类的静态块
    父类的非静态变量
    父类的非静态块
    父类构造方法
    子类的非静态变量
    子类的非静态块
    子类的构造方法

  • 相关阅读:
    浅谈c#中使用lock的是与非
    C#设计模式学习笔记单例模式
    ArrayList c.toArray might (incorrectly) not return Object[] (see 6260652)
    java.lang.Object 之 clone() 使用

    把以前的补齐 张
    String的方法 张
    随便写写 张
    集合框架 张
    java 张
  • 原文地址:https://www.cnblogs.com/linliquan/p/11254138.html
Copyright © 2011-2022 走看看