这是关于oop接口的唯一问题我似乎无法完全解释。那么,为什么在oop中一个类可以实现多个接口?
如果你能提供一些很棒的例子。提前谢谢。
答案 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类可以实现多个接口的原因。