Java 中方法的签名是否包括其返回类型?

2022-08-31 10:00:21

Java 类/接口中的方法签名是否包括其返回类型?

例:

Java知道这两种方法之间的区别吗:

public class Foo {
    public int  myMethod(int param) {}
    public char myMethod(int param) {}
}

或者可能只有方法名称和参数列表才重要?


答案 1

引用自Oracle Docs

定义:方法声明的两个组成部分包括方法签名 — 方法的名称和参数类型。

enter image description here

由于已编辑问题以包含此示例:

public class Foo {
    public int  myMethod(int param) {}
    public char myMethod(int param) {}
}

不,编译器不会知道区别,因为它们的签名:是相同的。第二行:myMethod(int param)

    public char myMethod(int param) {}

会给你可以出错:方法已经在类中定义,这进一步证实了上面的陈述。


答案 2

Java 中的类方法签名是否包含返回类型?

在Java中,它没有,但在这个JVM中,它确实如此,这可能会导致明显的混乱。

Java 中的接口方法签名是否包含返回类型?

与类方法相同。

还是只有方法名称和参数列表?

Java 的方法名称和参数类型。例如,参数批注和名称无关紧要。


推荐