美文网首页
构造器与多态

构造器与多态

作者: 莫逐 | 来源:发表于2017-09-22 10:59 被阅读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

结论

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

销毁反之,子类优先父类

分析原因

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

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

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

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

相关文章

  • 构造器与多态

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

  • 面试必问

    方法重载 :不属于多态方法重写 :属于多态构造器: 构造器名称跟类名一样面向对象思想的三大特点:多态、封装、继...

  • 面试题(面试必答)

    方法重载 :不属于多态方法重写 :属于多态构造器: 构造器名称跟类名一样面向对象思想的三大特点:多态、封装、继承 ...

  • day04

    多态 8.3构造器和多态 尽管构造器并不具有多态性(它们实际上是static方法,只不过该static声明是隐式的...

  • 创建型设计模式.工厂方法模式

    概念理解 定义:虚拟构造器(Virtual Constructor)模式或者多态工厂(Polymorphic Fa...

  • Java构造器和多态

    最近复习Java的一些基础知识,看到构造器和多态这块,简单记录一下复习的内容 构造器构造器实际上是隐式声明的sta...

  • 多态基础

    源代码 输出结果 多态相关:向上转型、向下转型、默认无参构造器、多态发生在继承的情况下,覆盖(重写override...

  • 多态与虚函数

    多态与虚函数 注意 在成员函数(静态成员、构造函数和析构函数除外)中调用同类的虚函数的语句是多态的。 在构造函数和...

  • 面向对象(五)-面向对象三大特性之继承

    面向对象的三大特性 封装 继承 多态 1.封装 之前学习的构造函数与set、get访问器函数都是在进行封装。我们在...

  • 第三篇-面向对象(上)

    1.面向对象三大特征: 封装、继承、多态 2.构造器为什么无返回值类型,但不可定义为void: 构造器相当于是有默...

网友评论

      本文标题:构造器与多态

      本文链接:https://www.haomeiwen.com/subject/ojrthxtx.html