【发布时间】:2013-05-24 07:48:34
【问题描述】:
这是关于 oop 中接口的唯一问题,我似乎无法完全解释。那么,为什么在 oop 中一个类可以实现多个接口呢?
如果你能提供一些例子那就太好了。提前致谢。
【问题讨论】:
标签: class oop inheritance interface implements
这是关于 oop 中接口的唯一问题,我似乎无法完全解释。那么,为什么在 oop 中一个类可以实现多个接口呢?
如果你能提供一些例子那就太好了。提前致谢。
【问题讨论】:
标签: class oop inheritance interface implements
由于菱形♦ 问题,Java 类不能扩展多个类。 Diamond ♦ 问题是由于构造函数链接而发生的。 Interface 中不存在构造函数,因此如果我们实现多个接口,不会出现菱形♦ 问题。这就是Java类可以实现多个接口的原因。
【讨论】:
接口本质上是抽象的(当然不是根据定义,只是说),因此所有方法都必须在具体的子类中实现,这样我们就可以避免致命的死亡钻石,以一种本身就是允许多个接口实现的答案。
还有许多其他用途,但由于上述解释,没有任何其他理由限制多重实现的概念......据我所知。
【讨论】:
首先是java不支持多重继承,因此你不能同时扩展两个类。但是,java 支持多个接口的实现。 Mingyu给出的例子对我来说似乎很完美。
【讨论】:
概念示例
我对多重接口的理解是interface就像动词或形容词,class就像主语。
老虎可以跑,所以Tiger class可以实现Runnable Interface。
老虎可以吃东西,所以Tiger class可以实现Eatable Interface。
因为类的一个实例可以有不同的行为,我们可以有不同的对应接口。
现实例子
java.util Class HashMap<K,V>
它实现了Serializable, Cloneable, Map<K,V>
所有的接口都是HashMap类的特性。
【讨论】: