为什么一个类可以实现多个接口?

时间:2013-05-29 06:52:28

标签: class oop inheritance interface implements

这是关于oop接口的唯一问题我似乎无法完全解释。那么,为什么在oop中一个类可以实现多个接口?

如果你能提供一些很棒的例子。提前谢谢。

4 个答案:

答案 0 :(得分:9)

概念示例

我对多接口的思考方式是界面就像动词或形容词,类就像主题一样。

老虎可以投放,因此Tiger class可以实施Runnable Interface

老虎可以吃,所以Tiger class可以实施Eatable Interface

因为类的实例可能有不同的行为,所以我们可以有不同的相应接口。

现实例

java.util Class HashMap<K,V>

它实现了Serializable, Cloneable, Map<K,V>

所有接口都是Class HashMap的特性。

答案 1 :(得分:1)

首先,java不支持多重继承,因此您无法同时扩展两个类。但是,java支持多个接口的实现。明宇给出的例子对我来说似乎很完美。

答案 2 :(得分:1)

接口本质上是抽象的(当然不是定义,只是说),因此所有方法都必须在具体的子类中实现,这样我们就可以避免死亡的致命钻石,支持多重继承的方式本身就是允许多个接口实现的答案。

还有许多其他用途,但由于上述解释,没有任何其他理由限制多重实施的概念......据我所知。

答案 3 :(得分:-1)

由于diamond♦问题,Java类无法扩展多个类。 Diamond♦问题是由构造函数链接引起的。 接口中不存在构造函数,因此如果我们实现多个接口,则不会出现菱形问题。这就是Java类可以实现多个接口的原因。