关于super()指向 

关于super()指向 

http://img1.sycdn.imooc.com//climg/606c1a510991273207830603.jpghttp://img1.sycdn.imooc.com//climg/606c1a58096d300102730047.jpg

老师你好,为什么这个super(name)打印出来是指Programmer而不是Person?

正在回答 回答被采纳积分+1

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

2回答
好帮手慕言 2021-04-06 18:16:03

同学你好,直接打印super(name)得到的返回值就是子类的实例化对象,不是Person。

http://img1.sycdn.imooc.com//climg/606c31ac095bd1de02640040.jpg

但是super方法代表的是父类的构造方法,不然以同学的例子,实例化出来的对象不会有name属性。同学可以再理解一下

祝学习愉快~

好帮手慕言 2021-04-06 17:09:08

同学你好,super作为函数使用时,表示的是父类的构造方法,在同学的例子中,Programmer是没有定义name属性的,调用super时传递了name,是传递到了父类的构造方法中,否则打印出来的实例对象是没有name属性的(同学可以把Person中的this.name = name这句代码去掉)

祝学习愉快~

  • 提问者 weixin_慕圣6334738 #1

    老师你好,我认为我的问题没有被回答。我问的是“为什么这个super(name)打印出来是指Programmer而不是Person?” 既然super指代的是Person的constructor,那打印出来不应该是Person的吗

    2021-04-06 17:51:48
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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