m0_70429519 2022-09-01 22:07 采纳率: 66.7%
浏览 38
已结题

关于Java中继承所遇到的问题

   由于刚学习Java,在继承的内容中遇到了一个问题,令我百思不得其解
   因为根据继承的定义,子类继承父类除构造方法外的所有方法,如果不加以更改,默认继承完全继承父类的方法,现在本人写下这一组代码

img

img

   按照定义的话,Bird类中没有重新定义在Animal类中继承过来的setget方法中方法体的内容,那么会原封不动地继承此方法。那么按理说Bird类中继承过来的实例方法run()方法中的this.getName()应该调用的是Bird类继承过来的get方法,但当我将getset方法原封不动地加到Birs类体中,代码反而报错,那么就代表this.getName()调用的是Animal类中的get方法,但是,根据对象调用实例方法的定义,Bird类中创建的对象并不能调用其他类的实例方法,那getName()是如何调用的,哪位好心人能给出一个解答!
  • 写回答

3条回答 默认 最新

  • 关注

    你将get,set原封不动的放在bird里面肯定报错,因为你的name是私有化的,子类中并没有name这个属性所以报错,this代表当前对象,如果你的当前对象是bird那么就是调用bird中的getname,如果子类中没有那就去父类中找,显然你子类是继承了getname方法的,子类中的getname在去调用父类的getname来获取name的

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 9月10日
  • 已采纳回答 9月2日
  • 创建了问题 9月1日

悬赏问题

  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持