这些是OO概念:
现在,您能说每种OO编程语言都实现了所有这些技术吗?或者,在所有OO语言中常见的是什么?例如,比较Java和javascript。这不是一个愚蠢的问题。例如,某些语言(例如Java)在Scala执行时不允许多重继承。所以,Java就像不完整的OO语言。我只是想知道是否说每个OO语言,例如,多态是完全正确的。 干杯
答案 0 :(得分:1)
简单回答:没有。
这是一篇很好的文章,指出......如何定义“真正的”OO语言..无法完成。
面向对象和计算机语言之间存在不同的关系:OO的支持,OO的普遍使用以及OO的实施。 同样,我建议做一些明确的努力:例如: “Java支持OO但不会在任何地方使用它”,“SmallTalk在任何地方使用OO,甚至是整数”,“Java通过将所有代码放入方法中来强制执行OO”等。 source
这些OOP概念的一些概念是在大多数语言之后创建的,并且在以后的版本中都有。对它们有不同程度的支持。
这实际上取决于语言的主要原则,应该支持或要求女巫概念。
答案 1 :(得分:0)
对于首发,我绝对不同意
...例如Java,在Scala时不允许多重继承 确实。所以,Java就像不完整的OO语言。
如果你要判断OO是一种基于另一种语言特征的语言,那么我猜你会发现没有“完整”的OO语言。我认为你应该做的是跟踪OO根并检查给定语言对该范例的影响程度。一个非常好的阅读是Alan Kay的Early history of Smalltalk,在那里他解释了范式的基础知识。基于此,您可以稍后划分纯OO语言,其中所有内容都被建模为对象(例如Smalltalk或Self)和混合语言,虽然支持OO概念,但并不完全遵循范例(例如PHP)。此外,纯粹的OO语言既有基于类的,也有prototype-based,所以例如具有多重继承或不具有定义语言是否为OO。
HTH