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

4
这是我在面向对象编程中唯一解释不太清楚的关于接口的问题。再次问一遍,为什么在面向对象编程中一个类可以实现多个接口?
如果您可以提供几个例子,那就太好了。谢谢提前。
4个回答

11

概念性例子

我对多个接口的看法是,接口就像动词或形容词,类就像主语。

老虎可以奔跑,所以Tiger类可以实现Runnable接口

老虎可以吃东西,所以Tiger类可以实现Eatable接口

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

现实世界的例子

java.util Class HashMap<K,V>

它实现了Serializable、Cloneable、Map<K,V>接口。

所有这些接口都是HashMap类的特性。


1

首先,Java不支持多重继承,因此您不能同时扩展两个类。但是,Java支持实现多个接口。Mingyu给出的示例对我来说非常完美。


1

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

还有许多其他用途,但由于以上解释,没有其他理由限制多重实现的概念……据我所知。


-1
Java类不能继承多个类,因为会出现钻石问题。钻石问题是由于构造函数链接引起的。接口中没有构造函数,因此如果我们实现多个接口,则不会出现钻石问题。这就是为什么Java类可以实现多个接口的原因。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接