Java方法重载

示例

方法重载(也称为函数重载)是类具有多个具有相同名称的方法的能力,前提是它们的参数数目或类型不同。

编译器检查方法签名是否存在方法重载。

方法签名包括三件事-

  1. 方法名称

  2. 参数数量

  3. 参数类型

如果对于一个类中的任何两个方法这三个都是相同的,则编译器将抛出重复的方法错误

这种类型的多态性称为静态编译时多态性,因为要调用的适当方法由编译器在编译期间基于参数列表决定。

class Polymorph {

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

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

    public static void main(String... args){
        Polymorph poly = new Polymorph();
        int a = 1, b = 2, c = 3;
        float d = 1.5, e = 2.5;

        System.out.println(poly.add(a, b));
        System.out.println(poly.add(a, b, c));
        System.out.println(poly.add(d, e));
    }

}

这将导致:

2
6
4.000000

重载的方法可以是静态的也可以是非静态的。这也不会影响方法重载。

public class Polymorph {

    private static void methodOverloaded()
    {
        //无参数,私有静态方法
    }
 
    private int methodOverloaded(int i)
    {
        //一参数私有非静态方法
        return i;
    }
 
    static int methodOverloaded(double d)
    {
        //静态方法
        return 0;
    }
 
    public void methodOverloaded(int i, double d)
    {
        //公共非静态方法
    }
}

同样,如果您更改方法的返回类型,我们将无法将其作为方法重载获得。

public class Polymorph {  

void methodOverloaded(){
    //没有参数,没有返回类型
}

int methodOverloaded(){
    //没有参数和int返回类型 
    return 0;
}