方法重载
在同一个类中,允许定义多个同名方法,但参数列表不同。编译器会根据调用时传入的参数来决定执行哪个方法。
基本原则
Java 判断是否重载只看方法签名(方法名 + 参数列表)
参数列表:
- 参数数量
- 参数类型
- 参数顺序
不包括:
- 返回值
- 参数名
- 访问修饰符
三种函数重载
形参个数不同
java
public class Test {
public void show(int a) {
System.out.println(a);
}
public void show(int a, int b) {
System.out.println(a + "," + b);
}
}java
show(10);
show(10,20);参数列:
int
int int参数类型不同
java
public class Test {
public void print(int a) {
System.out.println("int:" + a);
}
public void print(double a) {
System.out.println("double:" + a);
}
}java
print(10);
print(10.5);参数列:
int
double参数顺序不同
java
public class Test {
public void show(String name, int age) {
System.out.println(name + "," + age);
}
public void show(int age, String name) {
System.out.println(age + "," + name);
}
}java
show("张三", 20);
show(20, "张三");参数列:
String int
int String不是方法重载的情况
只改变返回值
返回值不参与重载判断。
java
public int add(int a, int b) {
return a + b;
}
public double add(int a, int b) { // ❌ 编译错误
return a + b;
}只改变参数名
参数名不参与重载判断
java
public void test(int a) {}
public void test(int b) {} // ❌ 编译错误