两个 Java 方法可以具有相同的名称和不同的返回类型吗?

2022-08-31 11:09:13

两个 Java 方法可以具有相同的名称和不同的返回类型吗?方法的返回类型不同,并且它们使用相同的方法名称进行声明。

这是允许的吗?


答案 1

如果两种方法具有相同的参数类型,但返回类型不同,则不可能。摘自 Java Language Specification, Java SE 8 Edition, §8.4.2。方法签名

如果两个方法或构造函数(M 和 N)具有相同的名称、相同的类型参数(如果有)(§8.4.4),并且 N 的形式参数类型适应 M 的类型参数后,具有相同的形式参数类型,则它们具有相同的签名。

如果两种方法具有不同的参数类型(因此,它们具有不同的签名),则可能是可能的。它称为重载。


答案 2

仅当它们接受不同的参数时。如果没有参数,则必须具有不同的名称。

int doSomething(String s);
String doSomething(int); // this is fine


int doSomething(String s);
String doSomething(String s); // this is not