在 Java 中,方法可以重载(Overloading),但方法的参数本身不能“重载”,需要分清楚几个概念:
Java 允许同一个类中多个方法同名,但参数列表不同(参数类型、个数、顺序不同):
public void test(int a) {}
public void test(String a) {}
public void test(int a, String b) {}
✅ 这是方法重载,是 Java 明确支持的。
“参数重载”这个说法本身是不准确的。
参数是方法的输入变量,不存在参数自己重载的概念。
例如下面这种想法是不存在的:
// ❌ 错误理解:参数重载
int a;
String a; // 同一个作用域里不允许
在同一个作用域中,变量名不能重复。
class Person {
Person() {}
Person(String name) {}
Person(String name, int age) {}
}
以下不是合法重载(编译错误):
public void test(List<String> list) {}
public void test(List<Integer> list) {}
因为泛型擦除后签名相同。
如果你是指某个具体场景(比如构造器、泛型、可变参数),可以继续问,我可以针对性讲。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。