2012-12-20 46 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