例如,我可以这样:
public static void SAMENAME (sameparameter n)
{
some code ;
}
public static String SAMENAME (sameparameter n)
{
similar code;
return someString ;
}
答案 0 :(得分:3)
这是不允许的。
Java中的方法签名被认为是方法名称和参数列表。返回类型不是方法签名的一部分。
定义: a的两个组成部分 方法声明包括该方法 签名 - 方法的名称和 参数类型。
来源:http://java.sun.com/docs/books/tutorial/java/javaOO/methods.html
答案 1 :(得分:3)
这是不允许的。对于编译器,可能有几个适合。例如:
SAMENAME(n);
可以返回String或无效,两者都有效。
答案 2 :(得分:3)
这是最简单的说明,为什么你不能。想象一下你实现:
String overloadedMethod();
int overloadedMethod();
现在我打电话给
overloadedMethod();
那么,哪一个被调用?由于未强制使用返回类型,因此无法确定要调用的方法。
答案 3 :(得分:2)
答案 4 :(得分:1)
不,因为当程序遇到函数调用SameName(param n)时,它不知道使用哪个。
答案 5 :(得分:0)
不,你不能这样做。 coz somtimes在java中,方法被称为忽略返回值,这被称为“调用其副作用的方法。”
考虑一下:
void x(){}
int x(){}
x();//method call --allowed in java
java如何确定调用哪个x()
。
所以java中不允许基于返回类型的重载。