构造器与多态

2017-09-22  本文已影响0人  莫逐

构造器与多态

通常情况下,对象销毁都是由jvm垃圾回收器进行处理,这里只是通过代码展示初始化顺序和清理操作顺序。

父类  

子类

测试代码

测试结果

运行sharedTest结果如下:

Creating1Shared:0Creating2Composing:0Creating2Composing:1Creating2Composing:2Disposing2Composing:0Disposing2Composing:1Disposing2Composing:2Disposing1Shared:0

运行sharedesTest结果如下:

Creating1Shared:0Creating1Shared:1Creating1Shared:2Creating2Composing:0Creating2Composing:1Creating2Composing:2Disposing2Composing:0Disposing1Shared:0Disposing2Composing:1Disposing1Shared:1Disposing2Composing:2Disposing1Shared:2

结论

初始化顺序是父类优先于子类

销毁反之,子类优先父类

分析原因

子类是继承父类,那么子类调用父类的成员是很普遍,所以父类的构造器总是在子类构造过程中调用。

按照继承的层次逐渐向上链接,每个基类的构造器都能得到调用。

构造函数是必须的,也就是说构造函数不同于其他函数,它是对象产生的基础,虽然对象可能是不完整的。

更为深层次的理解是为对象及对象属性、方法分配内存空间,只有在内存中存在一席之地,子类调用是才能正常使用。

上一篇 下一篇

猜你喜欢

热点阅读