3 回答

TA贡献1869条经验 获得超4个赞
从Oracle Docs报价:
定义:方法声明的两个组成部分包括方法签名 -方法的名称和参数类型。
由于对问题进行了编辑以包括以下示例:
public class Foo {
public int myMethod(int param) {}
public char myMethod(int param) {}
}
不,编译器不会知道它们之间的区别,因为它们的签名myMethod(int param)是相同的。第二行:
public char myMethod(int param) {}
会给你带来错误:方法已经在class中定义了,这进一步确认了上面的声明。

TA贡献1783条经验 获得超4个赞
Java中的类方法签名是否包含返回类型?
在Java中不是,但在此JVM中却可以,这可能导致明显的混乱。
Java中的接口方法签名是否包含返回类型?
与类方法相同。
还是只有方法名称和参数列表?
Java的方法名称和参数类型。例如,参数注释和名称无关紧要。

TA贡献1820条经验 获得超10个赞
在字节码级别,“返回类型”是方法签名的一部分。考虑一下
public class Test1 {
public Test1 clone() throws CloneNotSupportedException {
return (Test1) super.clone();
}
}
在字节码中有2个clone()方法
public clone()LTest1; throws java/lang/CloneNotSupportedException
public clone()Ljava/lang/Object; throws java/lang/CloneNotSupportedException
它们仅在返回类型上有所不同。
添加回答
举报