5、抽象详解
轉載請注明出處 --愛技術的華仔(http://blog.csdn.net/yunhua_lee)
?
抽象的中文概念非常形象,簡單來說就是“抽取出來比較像的部分”。
?
那么,在面向對象的領域里,抽取什么東西比較像的部分?
?
還記得前面給類下的定義么?我們一起來回顧一下:類就是一組相似事物的統稱。
再結合我們對象的定義:對象就是一個具體的類,一個真實存在的類。
我們就很容易發現了抽象的詳細含義:抽取多個對象或者類中比較像的部分。
?
?
?
注:
史派克:《貓和老鼠》中的斗牛犬
?
這里的抽象分為兩個層次:
第一個層次:對象?抽象成?類。
例如奧巴馬和梅西抽象成“人”,這一層的抽象主要是將“屬性類似”的對象抽取成類。
注意這里的屬性類似是指屬性類別一致,而屬性的取值是不一樣的。例如如果將“奧巴馬”和“梅西”都抽象成“人”,那么其屬性有身高、體重、性別、年齡等,但“奧巴馬”和“梅西”的這些屬性取值肯定是不同的。
?
第二個層次(或更高層次):將?類?抽象成超類(或者說父類,其實就是更高一級的類),
例如人和豬抽象成“動物”,這一層的抽象主要是將“行為類似”的類抽象成父類。
注意這里是“行為類似”,而不是第一層抽象的那樣“屬性類似”,因為在面向對象領域,行為一致的話就認為是同一類的,當然也不能是完全不同,完全不同的話就沒有相似點,也就無法抽象成類了,所以這一層抽象的重點是“相似”。
?
實際應用中,抽象的層次是不限的,根據業務的需要,或者不同的觀察角度,可以抽象出很多層。
?
【抽象的作用】
抽象并不是面向對象領域特有的概念和方法,在人類的科學研究中,抽象是再常見不過的技術了:生物學將豬馬牛羊等生物抽象為“動物”,將花草樹木等抽象為“植物”,醫學將心肝脾肺腎抽象為“內臟”,化學將碳氫氧氮等抽象為“元素”,物理學上將地球、火星、水星等抽象為“行星”。。。。。。等等。
?
又比如我們的高中學習課程,也抽象出“語文、數學、物理、化學”等學科,我們的大學課程,又分為了幾十上百個專業。
?
在人類的科學研究,以及日常生活和學習中,抽象最主要的作用是“劃分類別”,而劃分類別的主要目的其實還是“隔離關注點,降低復雜度”。因為這個世界太復雜了,復雜到一個人不可能同時關注所有的內容。心理學上的研究證實,人同時能關注的事務不超過?7+/-2個。可以想象,如果沒有抽象分類,我們將面對一個混沌的世界,同時關注如此多的內容,即使是天才,估計也要崩潰。
?
在面向對象領域,抽象也不例外。抽象的主要作用也是劃分類別,所以,抽象是面向對象領域里面發現類的主要方法
總結
- 上一篇: 子网掩码是什么,IP段的24是什么写法(
- 下一篇: 等价性梳理