gpt4 book ai didi

java - 有没有办法避免一个类同时实现2个特定的接口(interface)?

转载 作者:行者123 更新时间:2023-11-30 02:09:28 24 4
gpt4 key购买 nike

在 Java 中是否有办法避免一个类同时实现 2 个特定接口(interface)?

例如,如果我有 2 种对象:Movable 对象和 Motionless 对象。然后我有一个实现 Movable 的类 Car 。如果它已经实现了 Movable,如何避免它实现 Motionless

这只是一个简单的例子,很明显,一个可以移动的对象不可能是静止的,但在某些情况下,一个对象不能同时实现两个特定的接口(interface),这可能不是很清楚,从逻辑的角度来看。

最佳答案

您可以通过让每个接口(interface)声明一个具有不兼容返回类型的方法来实现此目的。

例如一个接口(interface)可以声明一个 void 方法 someMethod,另一个接口(interface)可以将其声明为 int 类型。

如果将它们设置为默认,那么实现类就不必直接实现它们,并且类无法成功实现这两者。

例如

public interface A {
default void someMethod() {}
}

public interface B {
default int someMethod() {
return 0;
}
}

public class Test implements A, B
{
// Can't make this work since we cannot successfully override
// both default methods due to the different return types.
@Override
public void someMethod()
{
// TODO Auto-generated method stub
A.super.someMethod();
}
}

关于java - 有没有办法避免一个类同时实现2个特定的接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50533176/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com