C++ 面向對象程序設計的基本特點
First: 抽象
面向對象方法中的抽象,是指對具體問題(對象)進行概括,抽出一類對象公共性質並加以描述的過程。
抽象的過程,也是對問題進行分析和認識的過程。
對問題的抽象應該包括兩個方面:數據抽象 和 行為抽象(也就是功能抽象 和 代碼抽象)。
用3個整形數來存儲時間,分別表示時、分、秒,這個就是數據抽象。
顯示時間、設置時間等功能,這就是行為抽象。
Second:封裝
封裝就是將抽象得到的數據和行為相結合,形成一個有機整體,也就是將數據與操作數據的函數代碼進行
有機的整合,形成“類”,其中的數據和函數老師類的成員。
這個就不用解釋了吧。
1 class Clock 2 { 3 public: 4 void settime(); 5 void showtime(); 6 private: 7 int hour, minute, second; 8 }
Third:繼承
例如,一般意義的“人”都有姓名、性別、年齡等;還有吃飯、工作、學習等。
但是按照職業划分,人又分為學生、老師、工程師、醫生等,每一類人又有各自的特殊屬性和行為。
例如學生具有專業、年級等特殊屬性和升級畢業等特殊行為,這些屬性和行為是醫生所不具有的。
如何把特殊與一般的概念間的關系描述清楚,使得特殊概念之間既能共享一般的屬性和行為,又能
具有特殊的屬性和行為呢?
繼承就是解決這個問題的。
C++語言中提供了類的繼承機制,允許程序員在保持原有類的基礎上,進行更具體、更詳細的說明。
Fourth:多態
面向對象程序設計中的多態是對人類思維方式的一種直接模擬。
比如我們在日常生活中說“打球”,這個“打”,就表示了一個抽象的信息,具有多重含義。
我們可以說:打籃球、打排球、打羽毛球,都使用“打”來表示參與某種球類運動,而其中的規則
和實際動作卻相差甚遠。實際上這就是對多種運動行為的抽象。
多態性是指一段程序能夠處理多種類型對象的能力。
在C++中這種多態可以通過強制多態、重載多態、類型參數化多態、包含多態4種形式來實現。
包含多態和類型參數化多態屬於一般多態性,是真正的多態。
C++中采用虛函數實現包含多態。虛函數是多態性的精華。
模板是C++實現參數化多態性的工具,分為函數模板和類模板兩種。