关于继承的细节

关于继承的细节

老师,对于继承的一些细节,以下是我的理解,不知道是否精确,如果有丝毫的偏差,麻烦指正。 虽然Cat继承了Animal, 但实际上:1. Cat对象没有真正的name, month属性; 2. 所有的this.getName(), this.getMonth(),super(name,month) 等 都获取的是Animal对象中的name,month属性。 3. 当实例化一个Cat对象时,同时也会实例化一个与之对应的Animal对象,用于“共享”它作为父类的属性和方法。 

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学,你好!楼上同学的说法是正确的。

1、Cat对象是具有name和month属性的

2、关于你的第二个问题,注意对象和类的区别。下面的两个get方法,是从父类继承来的方法。通过super(name,month)调用父类构造方法为属性赋值(有的时候大家可能不大理解,私有属性并没有被继承,但是子类是具有这些属性的)。而一旦通过构造方法创建了一个对象,那么这些属性肯定是属于这个对象的,跟父类没有任何关系。

3、实例化Cat对象并不会实例化Animal对象。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • MarcoLiLiLi 提问者 #1
    谢谢老师的耐心解答, 问题1和2我理解了。 问题3我还想再确认一下,实例化Cat对象时都会首先去调用父类的构造方法吧, 也就是说: 调用了父类构造方法并不等于实例化了一个Animal对象, 只不过是通过调用Animal类的构造方法来进行一些私有属性的赋值。
    2020-01-31 10:48:37
  • 好帮手慕珊 回复 提问者 MarcoLiLiLi #2
    同学,你好!你的理解是对的。祝学习愉快!
    2020-02-01 15:12:12
橘猫铲屎官 2020-01-29 12:45:40

我的认识:

1、Cat类继承父类Animal的所有可继承属性;

2、是通过调用父类中设定可被子类继承(且子类没有重写的)方法去实现赋值;

3、好像视频里老师也有讲到,是会调用到Animal父类的可被继承的方法属性去赋值;

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师