-4

这些是面向对象的概念:

  • 遗产
  • 多态性
  • 抽象
  • 封装

现在,您能说每种 OO 编程语言都实现了所有这些技术吗?或者,否则,所有 OO 语言中的共同点是什么?例如,比较 Java 和 javascript。这不是一个愚蠢的问题。例如,某些语言(例如 Java)在 Scala 允许时不允许多重继承。所以,Java 就像不完整的 OO 语言。我只是想知道是否说每种 OO 语言例如是多态的是否完全正确。干杯

4

2 回答 2

1

简单的回答:不。

这是一篇很好的文章,它指出了..如何定义“真正的”OO语言..无法完成。

面向对象和计算机语言之间存在着不同的关系:OO 的支持、OO 的普遍使用和 OO 的实施。再次,我建议您做一些明确的努力:例如“Java 支持 OO,但不是到处使用它”、“SmallTalk 到处都使用 OO,即使是整数”、“Java 通过让你将所有代码放入方法来强制执行 OO”等 来源

其中一些 OOP 概念是在大多数语言之后创建的,并且在那里有更高版本.. 对它们有不同级别的支持。

这实际上取决于语言的主要原则,应该支持或要求女巫概念。

具有面向对象特性的语言(超过 50 种)

于 2012-12-20T12:07:07.600 回答
0

首先,我绝对不同意

...例如 Java,当 Scala 允许时不允许多重继承。所以,Java 就像不完整的 OO 语言。

如果您要根据另一种语言的功能来判断 OO 是一种语言,那么我想您会发现没有“完整的” OO 语言。我认为您应该做的是跟踪 OO 根源并检查给定语言在多大程度上遵循该范式。一个非常好的读物是 Alan Kay 的Smalltalk 的早期历史,他解释了范式的基础知识。基于此,您以后可以划分纯 OO 语言,其中一切都被建模为对象(例如 Smalltalk 或 Self)和混合语言,虽然支持 OO 概念,但不完全遵守范式(例如 PHP)。此外,有纯 OO 语言,既有基于类的也有基于原型的,因此,例如是否具有多重继承并不能定义语言是否是 OO。

高温高压

于 2012-12-20T12:03:02.297 回答