java - 将调用哪个方法?

标签 java

例如我们有一个类 Test它使用参数重载 2 个方法(只需将其称为 ambiguouslyMethod):1 个方法具有短整型,另一个方法具有 int,但类型不同。在这种情况下,请考虑类型为 shortint。然后我从 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/

相关文章:

java - 如何使用 maven 打包并运行具有依赖项的简单命令行应用程序?

java - 构建-impl.xml :1045: The module has not been deployed error

java - Clojure实现带超时的 future vector

java - 我将如何进行输入验证?

java - 是否可以在 Stream.parallel() 中设置线程的优先级?

java - 如何在不使用 LinkedList 方法的情况下设置列表中的元素

java - Eclipse Neon Tomcat插件下载报错

java - Java 中的对象不变性

java - 如何等待使用 Selenium Java 填充 Kendo UI 自动完成

java - Slf4j: 找到 slf4j-api 依赖但没有找到提供者