【发布时间】:2016-10-16 15:54:36
【问题描述】:
我有几个接口:
public interface Speaker {
void speak();
}
public inteface Walker {
void walk();
}
我想要一种方法,该方法采用Speaker 和Walker 的实例。
现在,我可以实现另一个接口:
public interface WalkerSpeaker extends Walker, Speaker {
}
并接受:
void walkAndTalk(final WalkerSpeaker x) {
x.walk();
x.speak();
}
但这对于许多组合来说是相当麻烦的,并且每个实现都必须继承自 WalkerSpeaker 才能工作!
有没有更好的办法?
【问题讨论】:
-
差不多就是这样。如果它变得很麻烦,你可能想看看你的设计。
-
@Ravindrababu 您对该链接的回答同样繁琐且高度僵化,无法轻松扩展或更改。
-
仅供参考:最好使用
implements而不是extends作为接口。 -
@Akunosh An
interface只能extend母亲interface。只有类和枚举在指定接口时使用implements -
@Akunosh 一个接口可以扩展一个或多个接口。一个类可以实现一个或多个接口和/或扩展一个类。