03.02 用程序設計中“類”的概念來理解本體論中的“存在”

在哲學本體論研究中,主要研究對象是“存在”或“是”。由於“存在”的概念過於抽象,千百年來哲學家門都在苦苦追尋其本質,並爭論至今。

關於“存在”的研究資料非常多,各種觀點不一而足,這裡就不在贅述。雖然“存在”是一個純粹抽象的概念,它只能存在於人的思維當中,但是在這裡仍然想借助程序設計中“類”的概念來試著比喻“存在”這個概念。

首先簡單介紹一下“類”的概念。類就是定義一類有共同屬性的抽象對象,類可以一級級繼承,子類完全繼承父類的屬性,子類只需要增加自己特有的屬性進行擴展。

圖1.中定義了一個“三角形”類,它的屬性是擁有:3個頂點,3條邊。再定義一個“直角三角形”類,它從父類“三角形”繼承而來,繼承了父類的有個頂點、3條邊屬性,因此只需另外規定有兩條邊垂直就行。同理“等腰直角三角形”繼承了“直角三角形”的全部屬性,只需規定兩直角邊相等就行了。


用程序設計中“類”的概念來理解本體論中的“存在”

圖 1

注:此處只做原理性描述,不一定完全符合軟件設計規範,還有為了直觀易懂,屬性描述儘量簡潔,例如三角形兩條邊之和大 於第三邊、每個頂點只連接兩條邊等就不在圖中說明了。

三角形、四邊形、五邊形等多邊形有什麼共同特徵呢?我們可以抽取這些共同特徵作為它們的父類。我們發現這些多邊形共有的特點是它們都是由幾個頂點和幾條邊組成的封閉圖形,每個頂點只連接兩條邊並且邊數和頂點數相同,這樣我們可以抽象出它們的父類“多邊形”類。見圖 2。


用程序設計中“類”的概念來理解本體論中的“存在”

圖 2

注:為了方便大家理解這裡採取從下至上倒推的方法來抽象出上一級類,實際編程中是從上到下一級級定義繼承的。

多邊形是封閉圖形,我們常見的封閉圖形還有圓形、橢圓等(其實圓是橢圓的特殊情況)。這些封閉圖形有什麼共同特徵呢?我們發現它們外觀不確定但是都有面積和周長,因此我們抽象出它們的父類“圖形”類。見圖 3。說明:“圖形”類已無法實現,因為一個東西只知道有面積和周長我們不確定它是什麼樣子,這屬於虛類。


用程序設計中“類”的概念來理解本體論中的“存在”

圖 3

“圖形”類是封閉圖形,但有些圖形沒有面積,比如線段和點,它們又有什麼共同特點呢?我們已找不出它們的共同屬性了,我們發現它們都有外觀,是看得見的,因此它們都具有一個“顯示”自己的功能。所有我們可以抽象出“形狀”類作為它們的父類。見圖 4。

用程序設計中“類”的概念來理解本體論中的“存在”

圖 4

“形狀”類有外觀,可以顯示自己,而有些類沒有外觀,比如函數類、通訊類等,我們找不出這些類的共同屬性和功能了,因此只能抽象出一個沒有內容的空類為父類,我們叫作 “根”類,在程序設計中也叫純虛類。見圖 5。

用程序設計中“類”的概念來理解本體論中的“存在”

圖 5

圖6為整體繼承關係。

用程序設計中“類”的概念來理解本體論中的“存在”

圖 6

以上列舉了類的簡單繼承關係。圖中的“根”類沒有內容或者說是空的,但是所有其它的類都從它那裡派生,就像本體論中的“存在”或“是”,它是無但又蘊含著有,一起源於它又歸於它,它是一切“存在者”存在的原因。

《道德經》中的“天下萬物生於有,有生於無”、“無名,萬物之始也;有名,萬物之母也”、“道生一,一生二,二生三,三生萬物”等思想也與這種從無到有的“類”的繼承關係有某些相似之處,可供大家參考。


分享到:


相關文章: