在Java中,以下情况方法不能被重载:
- 仅返回值类型不同:方法重载要求方法名相同,参数列表不同。如果两个方法只有返回值类型不同,而方法名和参数列表完全相同,这是不允许的,会导致编译错误。例如:
public int add(int a, int b) {
return a + b;
}
public double add(int a, int b) {
return (double)(a + b);
}
上述代码中两个 add 方法仅返回值不同,会报错。
- 仅参数名不同:参数名不同但参数类型和顺序相同也不能构成重载。例如:
public void print(int num) {
System.out.println(num);
}
public void print(int number) {
System.out.println(number);
}
这两个 print 方法无法重载,因为参数类型都是 int ,只是参数名不同。
- 仅修饰符不同:方法的修饰符(如 public 、 private 、 protected 等)不同,而方法名、参数列表和返回值类型都相同,不能构成重载。例如:
public void show() {
System.out.println("Public show method");
}
private void show() {
System.out.println("Private show method");
}
这样的两个 show 方法是不合法的重载。
Java中方法不能重载的几种情况

被折叠的 条评论
为什么被折叠?



