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