例如我们有一个类 Test
它使用参数重载 2 个方法(只需将其称为 ambiguouslyMethod):1 个方法具有短整型,另一个方法具有 int,但类型不同。在这种情况下,请考虑类型为 short 和 int。然后我从 main 中调用这个方法,如下所示:
double d = new Test.ambiguousMethod(3);
那么会调用哪个方法呢?使用 INT 还是 SHORT 返回类型?
谢谢
这是我的代码:
Method a = new Method();
double d= a.print(3);
class Method {
public int print(int a)
{
return a;
}
public short print(short b){
return b;
}
}
最佳答案
两者都不会被调用,因为该程序无法编译。无论返回类型如何,两个不带参数的同名方法都具有相同的方法签名,这在 Java 中是一个编译器错误。
注意:当问题指出两个同名方法没有参数且返回类型不同时,给出了上面的答案。它已经改变了一些不同的东西。
对于“更新”的问题:
您传递一个 int
文字 3
,因此将调用 int
方法。要调用 short
方法,请将 3
转换为 short
:
ambiguousMethod((short) 3);
关于java - 将调用哪个方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19689180/