黑马程序员技术交流社区
标题:
子类对象的构造和初始化顺序
[打印本页]
作者:
李易烜
时间:
2013-3-13 22:52
标题:
子类对象的构造和初始化顺序
本帖最后由 猫腻 于 2013-3-14 09:47 编辑
子类对象的构造和初始化顺序?
作者:
HM汪磊
时间:
2013-3-13 22:57
静态代码块》构造函数》一般方法
静态代码快先于对象对象存在用于给类初始化
构造函数用于给对象初始化
作者:
张善颖
时间:
2013-3-13 23:02
1。对属性进行默认初始化;
2。绑定特定参数的构造函数,此时并没有执行构造函数的方法体;
3。如果构造函数中存在this()调用,则跳到本类相应重载的构造函数,跳到2),执行
完毕之后返回到当前构造函数,当前构造函数执行第5)步。
4。隐式或显示的调用父类的构造函数(因为父类的成员必须由父类的构造函数完成初始化),父类的构造函数又从2)开始执行流程,执行完毕之后返回到当前构造函数。
5。执行构造函数中的方法体;
6。如果存在游离块则优于构造函数执行。
注:
在子类的构造函数中不允许同时存在this()和Super()调用。
在构造子类对象时,父类的构造函数总是隐式或显式被调用。
没有继承关系的类的对象的创建与初始化:
作者:
罗威
时间:
2013-3-13 23:16
我觉得这个问题,你应该自己去运行试试,远比别人直接告诉你更好
你可以把这些放入子类和父类的代码(把隐式的构造函数还有super都写出来,这样有助于你看到运行结果分析结论)
静态代码块(如果有,最先执行,且每个静态代码块只执行一次,比如说父类有两个静态,子类也有两个,那么要先把父类的两个运行完才运行子类的两个)
构造代码块(如果有,那么就在静态代码块之后执行)
父类构造函数(构造代码块执行完了就执行他,他的第一行也有一个隐式的super(),因为Object是所有类的父类)
子类构造函数(最后才是子类的构造函数,他第一行有个隐式的super())
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2