老师能再解释下答案C和F么?

老师能再解释下答案C和F么?

//为什么C是?F不是呢?

//如果子类重写必须满足:1、修饰符范围>=父类修饰符范围;2、返回值类型一致(无论是基本类型还是自定义类型);3、方法名一摸一样;4、参数类型和数量必须一样。而重载只关乎:方法名相同+参数不同,那F看着也像重载。

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

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

1回答
好帮手慕小脸 2020-05-28 14:55:48

同学你好,F的错误在:返回值类型不同,所以不是方法重写,而参数列表相同,也不是方法重载。从而导致编译错误。

而c选项:子类继承了父类,相当于父类中的方法在子类中也是有的,只是没有显示的写在子类中。重载与返回值类型无关。所以c正确。

祝学习愉快~

  • F可以构成父类void bar(int...x)方法的重载啊
    2020-08-07 15:51:18
  • 同学你好,重载要求方法名一致,但参数的类型,个数,顺序比如有一个或者多个都不一样,而F中的参数和继承下来的参数都一样,只有返回值不同。而是否重载与返回值无关。因为,当它传一个int类型的参数时,它分不清要去使用哪个方法。,所以不能作为重载的方法。 祝学习愉快~
    2020-08-07 15:57:36
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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