继承中类初始化顺序
来源:互联网 发布:ios 添加unity3d插件 编辑:程序博客网 时间:2024/05/16 05:13
在继承体系中,父子类的初始化存在先后顺序,涉及父子类中都存在静态变量、静态代码块、普通变量、普通代码块、构造函数。
其初始化流程图如下:
注:变量和代码块的执行顺序依据代码编写的先后顺序。
以下以代码举例说明,有图有代码有真相,呵呵。
父类:
public class Parent{private static final String parentStaticStr="初始化父类Static变量"; static {System.out.println(parentStaticStr);System.out.println("初始化父类Static代码块");}private String parentStr="初始化父类普通变量";{System.out.println(parentStr);System.out.println("初始化父类普通代码块");}public Parent(){System.out.println("初始化父类构造函数");}}
子类:
public class Child extends Parent{private static final String childStaticStr="初始化子类Static变量"; static {System.out.println(childStaticStr);System.out.println("初始化子类Static代码块");}private String childStr="初始化子类普通变量";{System.out.println(childStr);System.out.println("初始化子类普通代码块");}public Child(){System.out.println("初始化子类构造函数");}}
执行:
public class InitOrderTest {public static void main(String []args){Child child=new Child();}}
执行结果:
0 0
- 继承中类初始化顺序
- 继承中初始化顺序
- Java中类继承的初始化顺序
- 继承中类的 初始化顺序
- java中继承初始化顺序
- 继承关系中,子类父类的初始化顺序
- 黑马程序员-java基础-继承中类的初始化顺序
- Java继承关系中类的初始化顺序
- JAVA中继承时的初始化顺序
- java继承中初始化的顺序
- java中继承的初始化顺序
- JAVA中继承与初始化顺序
- c++类多重继承初始化顺序
- 类的继承,初始化后运行顺序
- Java继承 学习 && 类初始化顺序
- Java继承类的初始化先后顺序
- 基类,继承类的初始化顺序
- Java类继承关系中的初始化顺序
- 三种MPM介绍
- 打造有执行力的团队
- Android下Activity结束(finish())之后没有释放内存问题的解决方法初探
- 怕死就去买中亚沙漏
- geohash:用字符串实现附近地点搜索
- 继承中类初始化顺序
- Lambda FAQ_8.Lambda表达式能用来定义递归函数吗?
- 浅谈Java串行端口技术协议
- build vp8 on android
- 学习软件技术的2、3点
- java线程之间的通信
- 经典算法--希尔排序
- java.sql.SQLException:Value '0000-00-00' can not be represented as java.sql
- 内核为2.6.22.1,在做pvmove时出现错误