Java - 接口实现中的方法名称冲突

2024-03-11

如果我有两个接口,它们的用途完全不同,但具有相同的方法签名,那么如何使一个类实现这两个接口,而不必被迫编写一个为这两个接口服务的方法并在该方法中编写一些复杂的逻辑。检查正在进行的调用的对象类型并调用正确的代码的实现?

在 C# 中,这个问题可以通过所谓的显式接口实现来克服。 Java中有没有等效的方法?


不,Java 中没有办法在一个类中以两种不同的方式实现同​​一个方法。

这可能会导致许多令人困惑的情况,这就是 Java 不允许这样做的原因。

interface ISomething {
    void doSomething();
}

interface ISomething2 {
    void doSomething();
}

class Impl implements ISomething, ISomething2 {
   void doSomething() {} // There can only be one implementation of this method.
}

您可以做的就是用两个类组成一个类,每个类都实现不同的接口。那么这个类将具有两个接口的行为。

class CompositeClass {
    ISomething class1;
    ISomething2 class2;
    void doSomething1(){class1.doSomething();}
    void doSomething2(){class2.doSomething();}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java - 接口实现中的方法名称冲突 的相关文章

随机推荐