2012-12-20 44 views
-4

这些面向对象的概念:的面向对象特性

  • 继承
  • 多态性
  • 抽象
  • 封装

现在,你可以说,每一个面向对象编程语言工具所有这些技巧?或者,否则,所有OO语言中常见的是什么?例如,比较Java和JavaScript。这不是一个愚蠢的问题。例如,一些语言,例如Java,当Scala不允许多重继承时。所以,Java就像是不完整的OO语言。我只是想知道是否说每个面向对象语言都是多态的都是完全正确的。 干杯

+1

没有面向对象的语言的使用_abstaction_ =) – Juvanis

+0

感兴趣的特定语言? (java与其他例子相比) –

+0

这些语言没有实现它。开发者的确如此。 – PeeHaa

回答

1

简单的回答:没有。

这里是一篇不错的文章,指出..“真正的”OO语言的定义如何不能完成。

面向对象和计算机语言之间有不同的关系:OO的支持,OO的无处不在的使用以及OO的实施。 再次,我建议一些努力是明确的:例如“Java支持面向对象的,但不会在任何地方使用它”,“Smalltalk的使用OO无处不在,即使对于整数”,“Java强制OO通过使你把所有的代码到方法”等 source

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

这确实取决于语言的主要原则,女巫的概念应该被支持或需要。

Languages with object-oriented features(超过50)

0

对于一个首发,我绝对

不同意...例如Java中,不允许多重继承时,斯卡拉 一样。所以,Java就像是不完整的OO语言。

如果你要判断OO是如何基于另一种语言的特征的语言,那么我猜你会发现没有“完整的”OO语言。我认为你应该做的是跟踪面向对象的根源,并检查给定的语言符合这种范式的程度。一个非常好的阅读是艾伦凯的Early history of Smalltalk,他解释了范式的基础知识。基于此,您可以稍后划分出纯粹的OO语言,其中的一切都被建模为对象(例如Smalltalk或Self)和混合语言,虽然支持面向对象的概念,但并不完全遵循范式(例如PHP)。此外,还有纯粹的OO语言,既有基于类的也有prototype-based,例如,具有多重继承与否不定义语言是否为OO。

HTH