方法重载章节中的练习题不应该是AD选项吗,怎么会是AC啊

方法重载章节中的练习题不应该是AD选项吗,怎么会是AC啊

public int plus(int  a)

public int plus(int a,int b)这是A和D选项,名称相同,参数个数不同,怎么错了呢

public int plus(int a)

public void plus(float a,float b) 这是A和C选项,方法声明返回值类型不同也可以说是相同的方法定义吗

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

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

5回答
慕桂英爱吃大米 2019-07-14 20:10:27

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

看图,是根据前面题目的要求,找到与题目中的方法重载的方法,不是让你在选项中选

两个重载的方法,D选项与题目已知只是返回类型不相同,不满足方法重载概念的要求

用户1150817 2019-07-08 02:06:08

方法重载的要点:

  1.  方法名相同

  2. 同名的方法之间参数个数或参数类型不同


只有符合这两种的才是重载,才是有效的方法重载

  • 同学很棒哦,理解正确回答满分~ 继续加油吧~祝:学习愉快~
    2019-07-08 08:55:45
醉舞清秋 2019-07-06 17:38:11

方法重载要考虑调用的问题,如果你写了两个方法,方法名相同,只有返回类型不同,你调用的时候怎么告诉计算机你调用的是哪个呢?

好帮手慕阿莹 2019-07-06 10:23:03

是这样的,方法重载的意义呢,在于调用同一个方法名,传入不同的参数,通过传入参数的不同,决定去调用哪个方法。至于这个方法返回什么,它不关心。

它关心的就是,你传入的参数能让我知道,我要去调用哪个方法。

如果按照同学的D选项,它和题目的参数一样,这样电脑楞了,它不知道应该去调用哪个方法了呀。

假如,你传入两个int类型的,它分不清我要调用哪个方法呀。

就比如,我们有个算面积的方法。

一个是算圆形的,一个是算长方形的。

它传入的参数不同,一个只传半径就可以,一个得传长和高,

这样,你传一个,那我就调用求圆面积的方法,传两个,则调用求方形面积的。

它只根据参数类型,个数,以及不同类型的位置来决定调用什么方法。

至于,它返回值是什么,无所谓。可能圆形的返回值我们就想让它是double,可能长方形的就想让它返回int类型的。调用不同的方法,产生对应的结果。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

好帮手慕小班 2019-07-05 18:46:48

        同学你好,本题目考查的是对public void plus(int a,int b){}方法的重载,

      1、 C选项中   public void plus(float a,float b){}       参数类型是float    所以参数列表是不同的!所以符合方法名相同,参数列表不同的重载条件哦!

    2、只要方法名一致,参数列表不同,就能构成重载,但是只有返回值不同不构成方法重载。所以D选项中  public int plus(int a,int b){}  并没有构成方法重载!

        如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 慕粉0597577 #1
    这四个选项是这样的 A、public int plus(int a){} B、public int plus1(int m,int n){} C、public void plus(float a,float b){} D、public int plus(int a,int b){} 我依然认为AD是方法重载
    2019-07-05 19:23:01
  • 提问者 慕粉0597577 #2
    感觉返回值类型不同对于方法重载很奇怪
    2019-07-05 19:24:16
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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