m0_70429519 2022-09-01 22:07 采纳率: 50%
浏览 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 网络科学导论,网络控制
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)