Java方法重载

举报
knightaa 发表于 2021/04/09 09:09:29 2021/04/09
【摘要】 1.什么是Java方法重载:指同一个类中定义多个同名方法,但是要求每个方法具有不同的参数类型或数量不同。2.需同时满足的条件    多个方法在同一个类中    多个方法具有相同的方法名    多个方法的参数不相同,类型不同或者数量不同3.实现原理方法名相同时,编译器会根据被调用方法之间的参数不同而选择叫要被调用的方法,以至于程序能够正确的运行而不会出错,当然如果匹配失败,则编译器就会报错。/...

1.什么是Java方法重载:

指同一个类中定义多个同名方法,但是要求每个方法具有不同的参数类型或数量不同。
2.需同时满足的条件

    多个方法在同一个类中
    多个方法具有相同的方法名
    多个方法的参数不相同,类型不同或者数量不同

3.实现原理

方法名相同时,编译器会根据被调用方法之间的参数不同而选择叫要被调用的方法,以至于程序能够正确的运行而不会出错,当然如果匹配失败,则编译器就会报错。

// 下面就是一个方法重载的求和案例

    1

public class CZ {
    public static void main(String[] args) {
        
    }

    // 两个数据求和方法
    public static int sum(int a,int b) {
        return a + b;
    }

    // 三个数据求和方法
    public static int sum(int a,int b,int c) {
        return a + b + c;
    }
}

  

1、重载仅对应方法的定义,与方法的调用无关,调用方式参照标准格式。
2、重载仅针对同一个类中方法的名称与参数进行识别,与返回值无关。

补充:不能通过返回值来判断两个方法是否相互构成重载。


4.为什么不能通过返回值来判定两个方法是否构成重载呢?

//这里的方法就不构成重载。
public class CZ {
    public static void main(String[] args) {
        
    }

    // 两个数据求和方法
    public static void sum(int a,int b) {
        return a + b;
    }

    // 三个数据求和方法
    public static float sum(int a,int b) {
        return a + b;
    }
}


int result = sum(10,20);
System.out.println(result);

 

为什么呢,因为如果在调用的时候我们这样写了,你会把编译器搞懵币的,它也不知道调用哪一个方法呀
在这里插入图片描述
很明显,你这样写了,也会被提示错误的,所以呀,方法的返回值只是作为方法运行后的一个状态,他是保持方法的调用者和被调用者之间的一个通信关系的,并不能作为判断是否重载的标识。

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。