Java不允许从多个类继承(仍然允许从多个接口继承),我知道这非常符合经典的菱形问题。但我的问题是,当从多个基类继承时没有歧义(因此没有菱形问题的机会)时,为什么java不允许像C++那样的多重继承?
发布于 2009-08-11 19:39:25
这是一个Java的design decision。你永远不会得到它,所以不要太担心它。尽管MI可能会帮助您制作Mixins,但这是唯一好的MI。
发布于 2009-08-11 19:44:50
我读到过大多数程序员没有以适当的方式使用多重继承。在多重继承的情况下,“只是为了重用代码而继承类”不是最佳实践。
在大多数情况下,许多程序员不知道何时使用简单继承。多重继承必须谨慎使用,而且只有当你知道自己在做什么的时候,才能有一个好的设计。
我不认为java (如c++)中的多重继承的缺失会给你的代码/应用程序设计/问题域映射到类带来限制。
发布于 2012-04-06 23:00:43
简单性。引用Tom Sintes的话:
Java设计团队努力使Java:
省略Java语言的多重继承的原因主要源于“简单、面向对象和熟悉”的目标。作为一种简单的语言,Java的创建者想要一种大多数开发人员无需大量培训就能掌握的语言。为此,他们努力使该语言尽可能地类似于C++ (熟悉),而不带着C++不必要的复杂性(简单)。
在设计者看来,多重继承带来的问题和混乱比它解决的问题更多。因此,他们减少了语言的多重继承(就像他们减少了操作符重载一样)。设计师们丰富的C++经验告诉他们,多重继承是不值得头疼的。
https://stackoverflow.com/questions/1262447
复制相似问题