Java继承_内存分析(六)

       通过上文的描述,我们可以画出代码的内存使用情况,通过内存使用情况,反过来,我们能够清楚的了解程序的运行,直接上图:

       

           本图画的是上文的代码,执行代码:Hero heroDfs = new Hero("甘道夫","暴风雪","大法师",14,450);

            根据上文初始化顺序,我们清楚的知道,语句创建了Object,GameObject,Creature和Hero四个对象,Object是基类对象,这个上文也描述过了。对于属性mc的隐藏,我们也可以清晰的看出在hero对象中存储的是圣骑士,在Creature中存储的是大法师。这也说明了父类对象也是独立存在的,只不过对子类而言是隐藏了。

this和super

            每个方法都有两个隐性参数:this和super。

           构造器中的this表示当前正在初始化的对象引用,方法中的this表示当前正在调用此方法的对象引用。

           super是直接父类对象的引用。可以通过super来访问父类中被子类覆盖的方法或属性。

           普通方法:没有顺序限制,可以随便调用;
           构造方法:任何类的构造函数中,若是构造函数的第一行代码没有显示的调用super(...),那么Java默认都会调用super();作为父类的初始化函数。所以你这里的super();加不加都无所谓。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值