java学习

子类对象实例化流程

2018-08-18  本文已影响0人  熊与花

从正常的社会逻辑来讲:没有你老子一定没有你,对于 继承程序的逻辑也是一样的,在进行子类对象实例化的时候一定要先实例化好父类对象。

范例:观察一个程序

demo result

发现现在即使没有进行父类对象实例化,也会由系统自动调用父类的构造方法(实例化父类对象),默认情况下,子类对象的实例化流程会自动实例化父类对象。实际上这个时候就相当于子类的构造方法里面隐藏了一个“super()” 

范例:修改子类定义

super()

super()表示的就是 子类调用父类构造的语句,该语句只允许放在子类构造方法的第一行。在默认情况下, 子类只会调用父类的无参构造方法,所以写与不写super()区别不大,但是如果父类里面没有提供无参构造,这个时候必须利用super()明确调用有参构造;

super("jkf")

结论:无论你如何折腾,在实例化子类对象的同时一定会实例化父类对象,目的是为了所有的属性可以 进行内存空间的分配。

super与this都可以调用构造方法,super是由子类调用父类的构造,而this是调用本类的构造方法,并且都一定要放在构造方法的首行,所以两个语句不允许同时出现

上一篇下一篇

猜你喜欢

热点阅读