Java 中冲突的接口方法

2022-09-02 09:17:11

可能的重复:
接口实现中的方法名称冲突 - Java

如果我们需要实现两个接口,这两个接口都包含具有相同名称和参数但返回类型不同的方法,我们该怎么办?例如:

interface A {
    public int foo();
}

interface B {
    public double foo();
}

class C implements A, B {
    public int foo() {...}  // compilation error
}

有没有一个简单的方法来克服这个问题?


答案 1

最简单的解决方案是始终返回 A,因为它可以存储每个可能的值。doubleint

如果您不是一个选项,则需要使用继承的替代方法。

class C {
    public A getA();
    public B getB();
}

C c = new C();
int a = c.getA().foo();
double b = c.getB().foo();

答案 2

你不能。Java 通过方法的名称和参数(而不是返回类型)来唯一地标识方法。