方法重载指类中多个同名方法通过参数列表不同实现,如参数类型、数量或顺序差异,提升代码可读性与复用性,构造方法亦可重载。
在Java中,方法重载(Method Overloading)是一种允许类中存在多个同名方法的技术,只要它们的参数列表不同即可。它提高了代码的可读性和复用性,是面向对象编程的重要特性之一。
方法重载指的是在一个类中定义多个名称相同但参数不同的方法。JVM通过方法的参数类型、数量或顺序来区分这些同名方法,从而决定调用哪一个。
注意:返回类型不同但参数相同的方法不能构成重载,编译会报错。
例如:
public class Calculator {
public int add(int a, int b) {
return a + b;
}
public double add(double a, double b) {
return a + b;
}
public int add(int a, int b, int c) {
return a + b + c;
}
}
上面三个 add 方法名称相同,但参数类型或数量不同,构成了方法重载。
要实现方法重载,必须满足以下任一条件:
下面是一
些合法的重载示例:
public void show(int a, String b) { }
public void show(String a, int b) { } // 参数顺序不同,构成重载
public void show(int a, String b, boolean c) { } // 参数个数不同
合理使用方法重载可以让API更友好,但也需要注意一些细节:
public void print(String... values) { }
public void print(String value) { } // 此时调用 print("hello") 会优先匹配这个
建议在使用 varargs 时避免与单参数方法直接重载,以免产生歧义。
除了普通方法,构造方法同样支持重载。这是创建对象时根据不同参数初始化的常用手段。
public class Person {
private String name;
private int age;
public Person() { }
public Person(String name) {
this.name = name;
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
这样可以根据需要灵活创建对象,提升使用便利性。
基本上就这些。方法重载不复杂但容易忽略细节,掌握好能写出更清晰、易用的Java代码。