這些面向對象的概念:的面向對象特性
- 繼承
- 多態性
- 抽象
- 封裝
現在,你可以說,每一個面向對象編程語言工具所有這些技巧?或者,否則,所有OO語言中常見的是什麼?例如,比較Java和JavaScript。這不是一個愚蠢的問題。例如,一些語言,例如Java,當Scala不允許多重繼承時。所以,Java就像是不完整的OO語言。我只是想知道是否說每個面嚮對象語言都是多態的都是完全正確的。 乾杯
這些面向對象的概念:的面向對象特性
現在,你可以說,每一個面向對象編程語言工具所有這些技巧?或者,否則,所有OO語言中常見的是什麼?例如,比較Java和JavaScript。這不是一個愚蠢的問題。例如,一些語言,例如Java,當Scala不允許多重繼承時。所以,Java就像是不完整的OO語言。我只是想知道是否說每個面嚮對象語言都是多態的都是完全正確的。 乾杯
簡單的回答:沒有。
這裏是一篇不錯的文章,指出..「真正的」OO語言的定義如何不能完成。
面向對象和計算機語言之間有不同的關係:OO的支持,OO的無處不在的使用以及OO的實施。 再次,我建議一些努力是明確的:例如「Java支持面向對象的,但不會在任何地方使用它」,「Smalltalk的使用OO無處不在,即使對於整數」,「Java強制OO通過使你把所有的代碼到方法」等 source
一些這個OOP概念是在大多數語言之後創建的,並且在後來的版本中..對它們有不同級別的支持。
這確實取決於語言的主要原則,女巫的概念應該被支持或需要。
對於一個首發,我絕對
不同意...例如Java中,不允許多重繼承時,斯卡拉 一樣。所以,Java就像是不完整的OO語言。
如果你要判斷OO是如何基於另一種語言的特徵的語言,那麼我猜你會發現沒有「完整的」OO語言。我認爲你應該做的是跟蹤面向對象的根源,並檢查給定的語言符合這種範式的程度。一個非常好的閱讀是艾倫凱的Early history of Smalltalk,他解釋了範式的基礎知識。基於此,您可以稍後劃分出純粹的OO語言,其中的一切都被建模爲對象(例如Smalltalk或Self)和混合語言,雖然支持面向對象的概念,但並不完全遵循範式(例如PHP)。此外,還有純粹的OO語言,既有基於類的也有prototype-based,例如,具有多重繼承與否不定義語言是否爲OO。
HTH
沒有面向對象的語言的使用_abstaction_ =) – Juvanis
感興趣的特定語言? (java與其他例子相比) –
這些語言沒有實現它。開發者的確如此。 – PeeHaa