Skip to content

方法重载(Overload)


基本介绍

Java 的同一个类中,允许多个同名方法的存在,但要求形参列表不同

应用场景

System.out.println ( ) 可以输出不同的数据类型的原因就是方法重载的使用

优势

减轻了起名、记名的麻烦

代码示例

java
public class overload {
    public static void main(String[] args) {
        t1 caculate = new t1();
        System.out.println(caculate.getnum(1,1));
        System.out.println(caculate.getnum(1,2.5));
        System.out.println(caculate.getnum(1,1,1));

    }
}

class t1{
    public int getnum(int a, int b){
        System.out.println("getnum(int a, int b) 被调用");
        return a + b;
    }
    public double getnum(int a, double b){
        System.out.println("getnum(int a, double b) 被调用");
        return a + b;
    }
    public int getnum(int a, int b, int c){
        System.out.println("getnum(int a, int b, int c) 被调用");
        return a + b + c;
    }
}

使用细节

(1)方法名:必须相同

(2)形参列表:必须不同(形参类型或个数或顺序,至少有一样不同,参数名无需求,即参数名不同对方法重载没有影响)

(3)返回类型:无需求,即返回类型不同对方法重载没有影响

(4) 方法调用机制:优先比较形参类型,匹配之后就会调用

小练习

与 void show(int a, char b, double c) {} 构成重载的方法

a: void show(int x, char y, double z) {} // 不是

b: int show(int a, double c, char b) {} // 是

c: void show(int a, double c, char b) {} // 是

d: boolean show(int c, char b) {} // 是

e: void show(double c) {} // 是

f: double show(int x, char y, double z) {} // 不是

g: void shows() {} // 不是