​方法重写当父类返回值类型为自定义类时为什么子类返回值用Object会报错?

​方法重写当父类返回值类型为自定义类时为什么子类返回值用Object会报错?

​方法重写当父类返回值类型为自定义类时为什么子类返回值用Object会报错

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

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

1回答
好帮手慕小脸 2021-01-12 15:12:48

同学你好,按照同学的说法去结合以下代码得知:返回类型不兼容

http://img1.sycdn.imooc.com//climg/5ffd4b43090eaead05580456.jpg


因为父类返回值为类 类型时,重写的方法才可以修改返回值类型,且必须是父类方法返回值的子类;

记住要么不修改,要么与父类返回值类型相同。如下:

http://img1.sycdn.imooc.com//climg/5ffd4be2096901e805860460.jpg

祝学习愉快~

  • 提问者 范不 #1

    那如果父类返回值是Object   子类返回值也是Object  为什么也可以呢

    2021-01-12 17:15:50
  • 好帮手慕小脸 回复 提问者 范不 #2

    同学你好,重写的规则如下:

    1、父类被重写的方法的返回值类型是void,则子类重写的方法的返回值类型只能是void

    ​2、父类被重写的方法的返回值类型是A类型,则子类重写的方法的返回值类型可以是A类或A类的子类,也就是说父类返回值是Object   那么子类返回值也是Object本身就是正确的哟

    祝学习愉快~

    2021-01-12 18:27:39
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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