【发布时间】:2011-06-21 07:28:11
【问题描述】:
可能的重复:
Why does Java allow multiple inheritance from interfaces but not from abstract/concrete classes
Why there is no multiple inheritance in Java, but implementing multiple interfaces is allowed
为什么我们被告知要实现多个接口,而不是从多个类继承(Java 不允许)?
当然,从多个类继承的重点是继承它们的功能 - 如果您必须手动重新插入功能(对于扩展一组接口的每个类),使用这些接口有什么意义?不能保证实现同一组接口的两个类将提供相同的功能 - 还是我遗漏了什么?
【问题讨论】:
-
@org,请注意,您找到的那个本身就是重复的 - 我在原始链接中链接了 :-)
-
这里是保证实现相同接口集的两个类将提供相同的功能:这就是接口的用途。
-
@Péter @Any Moderator 它应该自动将具体副本放在这里
-
我的问题不是我为什么不能扩展多个类。它是“使用多个接口有什么意义?”。
-
@Mikaveli:如果实现有问题,你为什么要使用它?如果您想保证从一个公共基础派生的两个类(无论是类还是接口)具有相同的实现,那么多态性(无论是接口还是类)都是错误的工具。即使使用多类继承,您也不能保证基类不会覆盖这些实现。
标签: java abstract-class multiple-inheritance