OCJP之有继承关系时,对象的初始化顺序
来源:互联网 发布:java emf转png 编辑:程序博客网 时间:2024/05/16 12:20
直接看代码中的注释:
注意:
1) 静态全局变量,也就是成员变量的使用;
2) 有继承关系时,子类对象的初始化顺序
3)构造器中this指针的引用,在子类构造器中,如果用了this,它直指另外一个构造器,不会先调父类的构造器了,参考另外一篇文章
package com.ocjp.polymorphism;class GardenTool {static String s = "";String name = "Tool ";GardenTool(String arg) { this(); s += name; }GardenTool() { s += "gt "; }}public class InitSequence extends GardenTool {{ name = "Rake "; }InitSequence(String arg) { s += name; }public static void main(String[] args) {//直接调父类,跟子类没任何关系;new GardenTool("hey ");/*有继承关系的子类对象,初始化顺序为: * 1) 父类的静态块 * 2) 子类的静态块 * 3) 父类的构造块 * 4) 子类的构造块 * 5) 父类的构造方法 * 6) 子类的构造方法 * 本例中,static String s为全局静态变量,第二个对象使用的s已经被第一个对象改过了 */new InitSequence("hi ");System.out.println(s);}//此构造块完全覆盖了{ name = "Rake "; }{ name = "myRake "; }}
输出:
gt Tool gt myRake
- OCJP之有继承关系时,对象的初始化顺序
- 诠释了继承类之间构造器(有参、无参)、对象初始化块和静态初始化块之间的关系及调用顺序
- 多重继承关系的初始化顺序
- java的继承关系中对象的加载和初始化顺序
- 继承之初始化顺序
- 类在继承关系上的初始化的顺序问题
- 继承关系的类初始化和实例化的顺序
- 继承关系的类初始化和实例化的顺序
- 继承关系的类初始化和实例化的顺序
- 继承关系中,子类父类的初始化顺序
- Swift - 父子继承关系的初始化方法调用顺序
- Java继承关系中类的初始化顺序
- java中涉及继承关系的初始化顺序
- 继承与初始化(static对象初始化顺序)
- JAVA继承关系中的初始化顺序
- Java类继承关系中的初始化顺序
- JAVA中继承时的初始化顺序
- Java继承时的初始化顺序
- 熬之滴水穿石:Spring--精简的J2EE(3)
- zencart常用模块的清单
- Zencart程序站内优化解决方案
- 黑马程序员--C#数组和Array类
- zencart 如何添加水印
- OCJP之有继承关系时,对象的初始化顺序
- BZOJ 3210(花神的浇花集会-max(|x1-x2|,|y1-y2|)
- 杭电 1280 前m大的数
- zencart网站优化
- 后缀数组的应用
- Zen Cart 改 iso-8859-1字符集为 utf-8
- 与88后的座谈(三): 只要肯用脑子,就不是简单的重复
- c++ const关键字
- 与88后的座谈(二) 不喜欢的工作,可能通往一个崭新世界