gpt4 book ai didi

java - java中的重载方法

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:44:41 24 4
gpt4 key购买 nike

我对 Java 中的重载方法有误解。

这些是否重载?

  1. public String eJava(int age, String name, double duration);
  2. float eJava(double name, String age, byte duration);

在我写的测试中,答案是肯定的。但我不这么认为。原因:让我们以方法参数为例:eJava(111, "word", 222);

据我所知,这些参数可以传递给这两种方法。因为111可以被double和int接受,“word”被String接受,222可以被byte或double接受。所以我认为正确答案是“编译错误”。

好的,这些方法有不同的返回类型,但这并不重要。

我做错了什么?谢谢你

最佳答案

是的,它们是重载方法,因为它们具有相同的名称但参数类型不同。 apomeme 的回答提供了更多细节。

回答第二个问题:

您的调用 eJava(111, "word", 222) 没有歧义,也不是编译错误。它匹配第一个方法:eJava(int age, String name, double duration)。它不能匹配第二个方法,因为它的第三个参数是一个字节,而一个 int 文字不能隐式转换为字节。除非您明确强制转换,否则不允许进行此类缩小转换。

但是,如果第二种方法是

float eJava(double name, String age, long duration)

那么调用确实会产生歧义和编译错误,因为 int 文字可以隐式转换为 long。

关于java - java中的重载方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47555831/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com