天天看點

《C++面向對象高效程式設計(第2版)》——1.13 面向對象程式設計語言的要求

本節書摘來自異步社群出版社《c++面向對象高效程式設計(第2版)》一書中的第1章,第1.1節,作者: 【美】kayshav dattatri,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

c++面向對象高效程式設計(第2版)

現在,可以從支援面向對象程式設計的角度來研究程式設計語言了。什麼語言可以成為面向對象程式設計語言?

任何聲稱支援面向對象程式設計的語言都必須提供易于設計和實作的特性:

所謂“易于”,指的是抽象和封裝必須自然而然,不需要程式員在這上面花太多功夫。程式員通過語言的要素,應該很容易地實作優秀的抽象和提供資料封裝。必須牢記,這些語言是設計用于支援oop的。

表 1-2

《C++面向對象高效程式設計(第2版)》——1.13 面向對象程式設計語言的要求

對于oop,繼承是另一項非常重要的特性。不支援繼承的語言不能成為面向對象程式設計語言。某些語言支援資料抽象和封裝,但并不支援任何形式的繼承。這樣的語言不是面向對象程式設計語言,它們被稱為基于對象語言(object-based language),雖然可以實作對象,但是,卻無法通過繼承擴充它們(如ada和modula-2等都屬于這個範疇的語言)。注意,在c中也可以進行資料抽象和某種程度的封裝。然而,這樣的抽象和封裝需要程式員做大量的工作,它并不是語言本身所具有的。實際上,oop在c中可以實作,甚至在彙編語言中也可以實作!這是一個實用性的問題。如果你打算使用oop,直接使用支援oop概念且檢查機制較多的語言更為實際。記住,任何面向對象語言(object-oriented language)都是基于對象語言。

繼續閱讀