坑【2】父类子类以及静态块,方法中的加载顺序
来源:互联网 发布:mac 移动硬盘装双系统 编辑:程序博客网 时间:2024/06/15 06:35
public class Test { public static void main(String[] args) { new Son(); new Father(); }}class Father { static { System.out.println("父类静态代码块初始化"); } { System.out.println("父类代码块初始化"); } private static String s = print(); public static String print() { System.out.println("父类静态方法"); return "父类静态成员变量的初始化"; } public Father() { System.out.println("父类无参构造函数初始化完成"); show(); } public void show() { System.out.println("父类show()方法。。。"); }}class Son extends Father { static { System.out.println("子类静态代码块初始化"); } { System.out.println("子类代码块初始化"); } private static int i = 1; private String s = "子类私有成员变量"; public void show() { System.out.println("子类成员变量初始化完成:s=" + s); System.out.println("子类show()方法:i=" + i); } public Son() { System.out.println("子类构造函数初始化完成"); show(); }}/** * 颠倒这俩效果不同 * new Son(); new Father(); * * 父类静态代码块初始化 父类静态方法 子类静态代码块初始化 父类代码块初始化 父类无参构造函数初始化完成 子类成员变量初始化完成:s=null 子类show()方法:i=1 子类代码块初始化 子类构造函数初始化完成 子类成员变量初始化完成:s=子类私有成员变量 子类show()方法:i=1 父类代码块初始化 父类无参构造函数初始化完成 父类show()方法。。。 从结果可以看出类中各成员初始化的顺序是: 1.如果类中存在继承关系(像 Son 继承 Father) 则首先会初始化导出类(Son)的基类(Father),然后再是导出类 2.在基类首先会初始化静态 的东西 静态块>静态变量 而且只初始化一次 (因为静态的东西都是跟着类的加载而加载的) 3.随后就是初始化导出类的静态东西 跟基类的静态初始化一样(同上) 4.非静态代码块 5.初始化基类无参构造器(调用有参就初始化有参构造器) 6.初始化导出类无参构造器(注意:导出类的成员变量和代码块都是是比构造函数的初始化要早。。看输出结果可知)*/
0 0
- 坑【2】父类子类以及静态块,方法中的加载顺序
- 关于Java中的静态块,非静态块,子类父类的静态块,非静态块的执行顺序
- 关于Java中的静态块,非静态块,子类父类的静态块,非静态块的执行顺序
- 父类子类构造方法、静态代码块、非静态代码块的执行顺序
- 子类,父类静态代码块,构造代码块,以及构造函数执行顺序
- Java中静态代码块,非静态代码块,以及父类与子类的构造方法的之间调用顺序
- java中的加载顺序以及父类与子类的构造方法
- 父类子类静态块、游离块、构造方法的执行顺序
- 父类与子类的静态代码块、代码块、构造方法执行顺序
- 探究JAVA父类子类静态代码块、静态变量、构造方法的执行顺序
- JAVA父类子类静态代码块、静态变量、构造方法的执行顺序
- 【JAVA】探究JAVA父类子类静态代码块、静态变量、构造方法的执行顺序
- JAVA父类子类静态代码块、静态变量、构造方法的执行顺序
- java中静态块以及方法快的加载顺序
- 块,静态块,子类,父类,继承加载顺序
- 静态语句块,非静态语句块,构造方法在子类和父类的执行顺序
- java父类子类中静态块非静态块构造方法的执行顺序和继承
- 父类和子类静态代码块、非静态代码块、构造函数(方法)执行的先后顺序问题
- vuejs学习“递归组件”
- 数三退一问题
- 关于ORA-00257: archiver error. Connect internal only, until freed 错误的处理方法
- 想提升一下前端技术,初学日期控件datepicker(一)
- hadoop学习第八节:Hive介绍和安装部署(根据实验楼整理)
- 坑【2】父类子类以及静态块,方法中的加载顺序
- nsSkinEngine_美化_安装包_NSIS_DirectUI_界面库_插件_防解包_自动升级_Duilib_C++_软件开发
- 双指针的作用
- 【CTSC1999】巴蜀2367家园
- Python数据分析
- android ListView详解
- Android 外部调起高德地图显示坐标点 自定义 标注高德地图 by Terry
- 函数结果状态代码
- 微信小程序开发之画布canvas 饼状图