【发布时间】:2017-03-26 03:53:15
【问题描述】:
据我所知,在 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));
}
}
我阅读了一些文章,但它们没有澄清我的问题。
【问题讨论】:
-
你自己测试过这段代码吗?这两个方法没有相同的签名,因此对于 JVM 知道调用哪个方法的能力而言,静态在这里应该无关紧要。
-
是的,我已经运行了这段代码,它运行没有任何错误。我想知道这背后的概念。谢谢你的链接:)
标签: java overloading