据我所知,在 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 个参数与 3 个参数)。
但是,如果您要编写这样的代码,那么它会导致编译错误。
class Adder {
static int add(int a, int b) {
return a + b;
}
int add(int a, int b) {
return a + b;
}
}
关于java - 静态和非静态方法的方法重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43024807/