面向對象中的抽象和具體類的理解


面向對象軟件開發的一個基本方法就是抽象,到底什么是抽象呢?
抽象是從眾多的事物中抽取出共同的、本質性的特征,而舍棄其非本質的特征。
例如蘋果、香蕉、生梨、葡萄、桃子等,它們共同的特性就是水果。得出水果概念的過程,就是一個抽象的過程。
要抽象,就必須進行比較,沒有比較就無法找到共同的部分。
共同特征是指那些能把一類事物與他類事物區分開來的特征,這些具有區分作用的特征又稱本質特征。
因此抽取事物的共同特征就是抽取事物的本質特征,舍棄不同特征。
所以抽象的過程也是一個裁剪的過程,不同的、非本質性的特征全部裁剪掉了。
所謂的共同特征,是相對的,是指從某一個刻面看是共同的。
比如,對於汽車和大米,從買賣的角度看都是商品,都有價格,這是他們的共同的特征,而從其他方面來比較是,他們則是不同的。
所以在抽象時,同與不同,決定於從什么角度上來抽象。抽象的角度取決於分析問題的目的。
在軟件開發過程中,識別穩定的需求、識別核心的需求、識別概念性的需求、設計系統的架構、定義系統中構件之間的接口關系等等都是抽象的過程,都是反應系統的本質特征的過程。
抽象的,才是穩定的,才是永恆的。 抽象的反義詞是具體。人員往往會說:“你講的太抽象了,能不能講的具體一點?”
在開發語言中,有抽象類,有具體類,具體類可以繼承自抽象類,可以實例化。抽象類可以派生出眾多的不同的具體類。
所謂:“一生二,二生三,三生萬物”。系統的穩定體現在抽象類,系統的變化體現在具體類。抽象類的層次要高於具體類。
系統因抽象而穩定,因抽象而生動。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM