Java方法的重载

方法的重载,即在同一个类中,存在方法名相同,但是参数不同的方法。

参数不同的定义:
(1)个数不同;
(2)类型不同;
(3)顺序不同。此处要注意:必须存在不同类型的参数才可以,如果两个都为int的话,就算改变变量的位置,也不叫顺序不同,因为都为int类型。(int a,int b)和(int b,int a)不叫参数顺序不同。(String s,int a)和(int a,String s)才叫参数顺序不同。

只要满足上述任一条件或者组合条件,都可称为参数不同。

上述定义中,没有提到修饰符和返回值,所以方法的重载与返回值和修饰符无关。

下面我们来举几个例子:

package com.dh.method;

public class overload {

    public static void main(String[] args) {

        //使用相同的方法名add()调用
        //根据参数来区分调用的是哪一个具体的方法
        System.out.println(add(1,2));
        add(1,2,"hello");
        System.out.println(add(1.0,2.0));
        System.out.println(add("hello", 1, 2));
    }

    public static int add(int a,int b){
        return a+b;
    }

    //参数类型不同
    public static double add(double a,double b){
        return a+b;
    }

    //参数个数不同
    //使用private修饰符
    private static void add(int a,int b,String s){
        System.out.println(a+b+s);
    }

    //参数顺序不同
    //使用public修饰符
    public static String add(String s,int a,int b){
        //返回值与上述方法不同
        return s+a+b;
    }

}

实现原理:

方法名称相同时,编译器会根据参数个数、类型逐个去匹配方法,以选择对应的方法,如果匹配不到相应的算法,就会报错。

这样就可以方便方法的调用了,像上述例子,不同参数类型的加法运算都可以使用add()这个方法来调用,在调用方法的时候,IDEA也会提示给出所有重载的方法需要什么类型的参数,多少个参数,就方便许多了,而不用一种数据类型的加法运算就要记忆一个方法的名称。


简单吧~只要记住参数不同的要求就可以了!

posted @ 2021-01-18 10:57  deng-hui  阅读(693)  评论(0编辑  收藏  举报