据我所知,在 Java方法重载中,我们对所有重载方法使用相同的名称.而且,他们的回归类型不是问题.但是,如果我们使用与静态和非静态形式相同的方法会发生什么,如下例所示?我们可以考虑这种方法重载吗?
class Adder {
static int add(int a, int b) {
return a + b;
}
int add(int a, int b, int c) {
return a + b + c;
}
}
class Test {
public static void main(String[] args) {
Adder a1 = new Adder();
System.out.println(Adder.add(11, 11));
System.out.println(a1.add(11, 11, 51));
}
}
我读了一些文章,但他们没有澄清我的问题.
最佳答案 使用关键字static不会对方法重载产生影响.
你的代码编译,因为add()方法的方法签名是不同的(2 params vs 3 params).
但是,如果您要编写类似这样的内容,则会导致编译错误.
class Adder {
static int add(int a, int b) {
return a + b;
}
int add(int a, int b) {
return a + b;
}
}