Java 方法(方法的调用机制、方法的传参机制)-方法​重载

时间:2024-01-23 10:19:26

java 中允许同一个类中,多个同名方法的存在,但要求形参列表不一致。只要它们的参数列表不同即可,与修饰符和返回值类型无关。 比如:System.out.println(); out 是 PrintStream 类型。

  • 参数列表: 个数不同,数据类型不同,顺序不同。如果参数列表类型、顺序、数量相同,参数名不同,不构成重载。
  • 返回类型:如果参数列表相同,方法名相同,返回值不同,不构成重载。
  • 重载方法调用: JVM通过方法的参数列表,调用不同的方法。
public class OverLoad01 {
    public static void main(String[] args) {
        MyCalculate mc = new MyCalculate();
        System.out.println(mc.calculate(1, 2));        // 打印结果:3
        System.out.println(mc.calculate(3, 4.5));    // 打印结果:7.5
        System.out.println(mc.calculate(1.2, 2));    // 打印结果:3.2
        System.out.println(mc.calculate(1, 4, 7));    // 打印结果:12
    }
}

// 这个类的四个calculate方法构成了重载
// 方法名一样,参数列表的类型不一样
class MyCalculate {
    // 两个整数的和
    public int calculate(int n1, int n2) {
        return n1 + n2;
    }

    // 这个方法和上面的方法不构成重载,因为参数列表的类型相同
//    public int calculate(int a1, int a2) {
//        return a1 + a2;
//    }

    // 一个整数和一个浮点数的和
    public double calculate(int n1, double n2) {
        return n1 + n2;
    }

    // 一个浮点数和一个整数的和
    public double calculate(double n1, int n2) {
        return n1 + n2;
    }

    // 三个整数的和
    public int calculate(int n1, int n2, int n3) {
        return n1 + n2 + n3;
    }
}