我明白为什么Java中不允许类的循环继承,但我不明白为什么不允许接口(interface)的循环继承。举例说明:
interface Foo extends Bar {/*methods and constants*/}
interface Bar extends Foo {/*methods and constants*/}
接口(interface)不需要实例化,那么什么阻止它们相互扩展呢?
顺便说一句,我读了这个问题,但这不是关于接口(interface)而是关于类: Cyclic inheritance hierarchy in Java
提前致谢。
最佳答案
不,但是接口(interface)的扩展是拆分协议(protocol)的一种方式。请记住,接口(interface)是提供一组方法的实现的协议(protocol)。
public interface A extends B {
public void myMethod();
public void myOtherMethod();
}
您是说接口(interface) A
是由这些方法以及接口(interface) B
中的所有方法定义的。现在,如果接口(interface) B
说..
public interface B extends A {}
你是说接口(interface)B
是由接口(interface)A
中的方法定义的。那么接口(interface) A
的定义是什么。一些方法和接口(interface)B
。接口(interface) B 是由什么定义的?接口(interface)A
,由几个方法和接口(interface)B
定义!看看这是怎么回事?
允许这样做没有逻辑意义。
关于java - 接口(interface)的循环继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35270168/