【发布时间】:2014-09-12 17:43:29
【问题描述】:
我或多或少地同时研究了一点 Java 和 C++,我注意到 Java 对 OOP 的解释方式比 C++ 方式更友好、更直观。
是的,Java 完全是面向对象的,另一方面,C++ 支持许多范式,但这并不意味着 C++ 无法改进其实现面向对象范式的方式。
C++ 支持多重继承,Java 将其翻译为多重实现(接口),我觉得这非常直观和简单(我不认为这只是一种意见)。
我的第一个问题在标题中。我认为 C++ 会更友好,而不会失去几乎一点它的力量。这是一个改进一门非凡的编程语言的问题,但这并不完美。
我的第二个问题是:与Java编程语言的接口(如果有的话)相比,多重继承的优势是什么?
【问题讨论】:
-
如果发生这种情况,很多代码会被破坏。
-
没有人会阻止你在 C++ 中只使用抽象方法编写基类。
-
@bad_alloc:如果你想让你的语言为了你自己的利益而去掉一些特性,你真的应该使用 Java 而不是 C++。
-
我当然同意 C++ 可以在没有多重继承的情况下完成,尽管它可以在这里和那里用于一些漂亮的技巧。这只是他们必须在早期选择的这些事情之一,现在,它不能也永远不会改变,因为太多的代码会破坏,你当然不能仅仅因为真正的意见而破坏所有的代码。顺便说一句,作为编码指南,许多“专业”项目都有一条关于不使用多重/虚拟继承的规则,以使事情变得更简单,就像在 Java 中一样。在 C++ 中,您决定在哪里画线。
-
或者 C++,就此而言;重点是将垃圾收集添加到目前允许程序员显式管理内存的语言中。您正在谈论删除程序员有时依赖的功能,只是因为它是需要考虑的额外内容。限制功能以使事情变得更容易是高级语言的特征,但并非所有语言都是高级语言。有一个完整的范围。
标签: java c++ interface multiple-inheritance