• 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 }

    运行结果:

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

  • 相关阅读:
    append 注意事项
    列表与字符串转换
    删除列表元素
    段寄存器
    通用寄存器
    最强大的王爽汇编语言学习环境使用教程
    JavaScript获取输入框内容
    ubuntu16.04中将python3设置为默认
    Django之cookie和session
    postman 安装桌面版
  • 原文地址:https://www.cnblogs.com/linliquan/p/11254138.html
Copyright © 2020-2023  润新知