为什么public int hello(){}不是重载

为什么public int hello(){}不是重载

老师课上您说public int hello(){}不是重载,为啥啊?

正在回答

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

2回答

我说的是与返回值无关,决定重载是方法名一样,参数不一样;上面的例子我把返回值去掉一样不影响:

//返回值版本
public class Test {
    public int plus(int m,int n){
        return m+n;
    }

    public double plus(double m,double n){
        return m+n;
    }

    public int plus(int[] arr){
        int sum=0; 
        for(int i=0;i<arr.length;i++){ 
            sum=sum+arr[i]; 
        } 
        return sum; 
    }

    public static void main(String[] args) {
        Test test = new Test();
        test.plus(1,2);
        test.plus(3.0,4.2);
        test.plus(new int[]{1, 2, 3, 4, 5});

    }
}

无返回值版本

//无返回值版本
public class Test {
    public void plus(int m,int n){
        System.out.println(m+n);
    }

    public void plus(double m,double n){
        System.out.println(m+n);;
    }

    public void plus(int[] arr){
        int sum=0;
        for(int i=0;i<arr.length;i++){
            sum=sum+arr[i];
        }
        System.out.println(sum);
    }

    public static void main(String[] args) {
        Test test = new Test();
        test.plus(1,2);
        test.plus(3.0,4.2);
        test.plus(new int[]{1, 2, 3, 4, 5});

    }
}


  • ALGO_cui 提问者 #1
    非常感谢!
    2018-02-07 16:51:29
walkingway 2018-02-07 13:11:19

只有方法名相同,参数列表不同的才是重载,返回值不在考虑范围内

  • 提问者 ALGO_cui #1
    public int plus(int m,int n){ return m+n; } public double plus(double m,double n){ return m+n; } public int plus(int[] arr){ int sum=0; for(int i=0;i<arr.length;i++){ sum=sum+arr[i]; } return sum; }
    2018-02-07 13:16:17
  • 提问者 ALGO_cui #2
    你怎么解释这个? public int plus 和 public double plus
    2018-02-07 13:17:27
  • 一叶知秋519 回复 提问者 ALGO_cui #3
    方法的重载是方法名相同,参数列表不同;这两点是关键点; public int plus(int m,int n) 和 public double plus(double m,double n)是方法名相同,参数列表不同,方法的重载和返回值是没有关系的。祝学习愉快~
    2018-02-07 14:44:23
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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