为了账号安全,请及时绑定邮箱和手机立即绑定

一道关于继承的面试题

一道关于继承的面试题

湖上湖 2019-05-10 15:25:52
题目描述classSuper{privateStringname="Super";publicStringgetName(){returnthis.name;}}publicclassSubextendsSuper{privateStringname="Sub";publicstaticvoidmain(String[]args){Subsub=newSub();//SuperSystem.out.println(sub.getName());}}你期待的结果是什么?实际看到的错误信息又是什么?我以为会输出sub,但实际输出了super.我一直以为this指代的是方法的调用者,getName()是sub调用的,所以其中this的应该是sub,那么sub.name应该是sub;但是这很明显错了
查看完整描述

2 回答

?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

子类没有重写getName方法,所以调用的getName方法是父类的。在父类的方法里面this.name指向的是父类的name属性的地址。
如果子类重写了父类的getName方法,子类的this.name就是sub了。
                            
查看完整回答
反对 回复 2019-05-10
  • 2 回答
  • 0 关注
  • 497 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信