子类对象的构造和初始化顺序

2014-11-23 23:26:59 · 作者: · 浏览: 11

1)对属性进行默认初始化;


2)绑定特定参数的构造函数,此时并没有执行构造函数的方法体;


3)如果构造函数中存在this()调用,则跳到本类相应重载的构造函数,跳到2),执行


完毕之后返回到当前构造函数,当前构造函数执行第5)步。


4)隐式或显示的调用父类的构造函数(因为父类的成员必须由父类的构造函数完成初始化),父类的构造函数又从2)开始执行流程,执行完毕之后返回到当前构造函数。


5)执行构造函数中的方法体;


6)如果存在游离块则优于构造函数执行。


注:


在子类的构造函数中不允许同时存在this()和Super()调用。


在构造子类对象时,父类的构造函数总是隐式或显式被调用。


没有继承关系的类的对象的创建与初始化: