这是我在面向对象编程中唯一解释不太清楚的关于接口的问题。再次问一遍,为什么在面向对象编程中一个类可以实现多个接口?
如果您可以提供几个例子,那就太好了。谢谢提前。
如果您可以提供几个例子,那就太好了。谢谢提前。
概念性例子
我对多个接口的看法是,接口就像动词或形容词,类就像主语。
老虎可以奔跑,所以Tiger类
可以实现Runnable接口
。
老虎可以吃东西,所以Tiger类
可以实现Eatable接口
。
因为类的实例可能有不同的行为,所以我们可以有不同对应的接口。
现实世界的例子
java.util Class HashMap<K,V>
它实现了Serializable、Cloneable、Map<K,V>
接口。
所有这些接口都是HashMap类的特性。
首先,Java不支持多重继承,因此您不能同时扩展两个类。但是,Java支持实现多个接口。Mingyu给出的示例对我来说非常完美。
接口本质上是抽象的(当然不是按照定义来说,只是这么说),因此所有方法都必须在具体子类中实现,以避免死亡之钻,并以此支持多重继承,这本身就是允许多个接口实现的答案。
还有许多其他用途,但由于以上解释,没有其他理由限制多重实现的概念……据我所知。