類對象接口的哲學思考

1       類對象接口的哲學思考

在程序領域中,類是的英文詞class的中文譯法,抽象類是英文詞abstract class的中文譯法,對象是英文詞Object的中文譯法,接口是英文詞abstract class的中文譯法。

1.1  對字詞的望文生義

我們先對類、抽象類、對象、接口這四個詞先望文生義,其在“在線新華字典”中的解釋如下:

類作爲漢字在“在線新華字典”上的解釋是(1)很多相似事物的綜合,比如種類、類羣、人類;(2)相似,好像,比如類同、類似。,前面關於類解釋完全是按中文類的含義來解釋。

抽象類是對程序領域的英文詞abstract class的中文譯法。抽象類作爲漢字的詞彙在“在線新華字典”是沒有解釋的,並且對於抽象的解釋也是放在“具體與抽象”這個組合詞彙中做出的解釋。其解釋如下:“具體指客觀存在着的或在認識中反映出來的事物的整體,是具有多方面屬性、特點、關係的統一。抽象指從具體事物中被抽取出來的相對獨立的各個方面、屬性、關係等。兩者在人的認識中互相聯繫和轉化。認識從低級的感性的具體認識開始,經分析形成概念、判斷的抽象認識,又經綜合再現具有多方面屬性、特點、關係的統一整體,形成高級的理性的具體認識。”。

對象作爲漢字的詞彙在“在線新華字典”上的解釋是(1)行動或思考時作爲目標的人或事物,比如研究對象;(2)特指戀愛的對方,比如找對象。

接口作爲漢字詞彙在“在線新華字典”上的解釋是計算機中央處理機與外部設備之間的連接部分。泛指兩個計算機系統或兩種部件之間的連接設備。不同的設備要求不同功能的接口。其中接的解釋是連成一體,比如接合;而口的解釋是容器通外面的地方,如瓶口;出入通過的地方,比如門口。

上述對類、抽象類、對象、接口的漢字語義的表述與在程序領域中對其的解釋儘管有些部分有相同,但整體上給人感覺是差距很大。

1.2  程序領域中的解釋

那麼在程序領域中對於這四個字詞的解釋如下:

類表示了對象的類別,是創建對象的藍本。建立一個事物的抽象模型,本質上就是表達該事物的性質和行爲。使用類來建立抽象模型,是通過在類中定義變量和方法來實現的。類中定義的變量和方法被稱爲類的成員。類就是一種類型的對象的表示形式,類也具有它自己的屬性、方法。在處理複雜事物的時候,用到的一種基本手段就是抽象。抽象的目的就是區別事物之間的本質和不同,面向對象編程(OOP)的實質就是利用類和對象來建立抽象模型。類中定義的屬性是一種可存儲值的變量,該變量代表着事物的具體性質。類的對象所具有的行是由定義的方法來實現的。

抽象類是一個類,它由一些抽象的方法和屬性組成。所謂抽象的方法就是一些只定義了方法的基本信息(如方法名,返回類型,參數信息),而沒有具體實現的代碼的方法。當然,上面的是一般情況,如果你非想要在某個方法內添幾行實現代碼,那也並非不可以,不過添了代碼的方法就不是抽象方法了。由於抽象類中一般都不給予方法的實現,所以實例化也就沒有任何意義,因此,抽象類被限制爲不可以進行實例化。

對象是類的實例。對象在構造時以類爲藍本,創建對象的過程叫做實例化。對象是類所表示的抽象事物的具體實例。如果說類是一個抽象概念,那麼對象就是具體對象。比如我們說‘人’就是一個抽象概念,但是具體到某個人,比如你,我,他,就是一個‘人’對象。一個對象可被認爲是一個把數據(屬性)和程序(方法)封裝在一起的實體,這個程序產生該對象的動作或對它接受到的外界信號的反應。

接口是一些嚴格限制的方法的集合。這些方法只包括一些特徵:方法名,參數的數目和種類,且這些方法只能是抽象的和公開的。也就是說接口中的方法不僅沒有具體實現的代碼,連返回類型都沒有了。並且這些規定是嚴格的,說不能有,就是不能有(返回類型可以有),不向抽象類那麼好說話。接口的規定這麼嚴格,自然也是沒法實例化的,其實和抽象類一樣,接口實例化了比抽象類還沒意義。

1.3  對類相關詞彙的思考

類是一種類型,是一種區別於基本類型(int、char、float等)的複合類型。類是物質形式定義的容器。

1.3.1       類與物質是概念統一的

類與哲學中物質詞是統一的。物質指在人們的意識之外獨立存在又能爲人的意識所反映的客觀實在。世界上的一切事物有着無限多樣的形態,無窮的變化發展,但歸根結底都是客觀實在的外在表現,都是物質的外在表現。

(1)           物質是有屬性的物質。物質的屬性具有質和量兩個屬性。質是指物質的性質,而不是質量;量是指衡量物質處在的某種狀態的數量。從量變到質變,就是說物質總是處在不斷的變化之中。而在每次由一種性質變化到另一種性質的過程中,總是由微小的變化(稱作量變)慢慢積累,微小的變化的積累最終導致物質由一個性質變化到另一個性質。

(2)           物質是運動的物質。物質是運動的承擔者,是一切運動和發展的實在基礎;運動是物質所固有的根本屬性,是一切物質形態的存在方式。 物質和運動是不可分割的。一方面,物質是運動的物質,沒有不運動的物質。運動是物質所固有的根本屬性和一切物質形態的存在方式。設想有不運動的物質是形而上學唯物主義的特徵。另一方面,運動是物質的運動,沒有無物質的運動。

(3)           物質是空間的物質。空間的定義:“能夠包容所有物理實體和物理現象的場所”,可視爲空間的物理定義。談到空間就離不開物質,人們認識空間是通過物質而得以實現的。無論何種物質都會以某種形態出現在空間裏,物質是佔據一定空間的存在。雖然都是存在,但空間的存在與物質的存在是有根本區別的。物質不管以什麼形態存在(如小到基本粒子,大到天體;無論是質還是能)都是有邊界的,而空間的存在是無界的。

(4)           物質是能量的物質。物質爲構成宇宙萬物的實物、場等客觀事物;是能量的一種聚集形式。物質是標誌客觀實在的哲學範疇,物質唯一屬性就是客觀實在性。物質具有相同的屬性(共性)即時間、空間及數量屬性。從而,能夠被人的意識所感覺、感知或者說所複寫、攝影、反映。物質是世界的內容和組成部分之一,是各種事物共同具有的客觀實在性規定,是人通過大腦的思維,從各種事物中發現和抽取出來的絕對抽象事物。同時,它又是具體事物,物質即實物性物質和能量性物質都統一於基本物質,即能量子[參獨創性見解]。能量子及其高級形態,都具有質量和能量,即具有時、空、場的規定性和場、力(能)數量規定性。

類的定義是建立一個事物的抽象模型,本質上就是表達該事物的性質和行爲。我們可以看出類是用來表達有屬性和行爲的事物的。這與物質是有屬性的物質、物質是有空間的物質、物質是有運動的物質是吻合的。我們可以說類是哲學領域中的物質在信息世界中的投射,這種投射是相對完全的,只是在名稱上改爲了類。

1.3.2       抽象類與一般事物概念是統一的

世界是無數個別具體事物組成的統一體,個別具體事物是世界的內容和組成部分;個別具體事物是許多規定、性能、關係組成的統一體,各種規定、性能和關係是個別具體事物的內容和組成部分;物質是個別具體事物及其各種規定、性能、關係共同具有的客觀實在性規定,是個別具體事物及其各種規定、性能、關係共同具有的內容和組成部分,所以說物質是世界的內容和組成部分之一。世界及其各種事物都是物質的存在和表現形式。

物質是個別具體事物及其各種規定、性能、關係的內容和組成部分,個別具體事物及其各種規定、性能、關係都具有客觀實在性的規定,都包含着物質,物質只有依附於個別具體事物上,依附於各種規定、性能、關係上才能夠存在和表現出來,所以說個別具體事物及其各種規定、性能、關係是物質的存在和表現形式。   

個別具體事物是世界的內容和組成部分,世界包含着無數個別具體事物,個別具體事物只有依附於世界的身體上,作爲世界大集體中的個體才能存在和表現給我們來認識,所以說世界是個別具體事物的存在和表現形式。   

按照生活中的語言習慣,人們把自己手中拿着的個別具體蘋果既可以稱作蘋果,也可以稱作水果、食物,物、物質。這是因爲個別事物中包含着一般事物,個性規定中包含着共性規定。物質、物、食物、水果、蘋果是我手拿着的具體蘋果分別具有的一般內容和組成部分,我手拿着的個別具體蘋果不僅是一般蘋果的存在和表現形式,而且還是抽象程度更高的水果、食物、物、物質的存在和表現形式。   

用外延寬泛的概念對個別事物進行表述雖然有一定的道理,經常被大家採用,但是缺乏科學和嚴謹的性質,常常會引起爭論。白馬是不是馬在中國引起過長期的爭論。蘋果是物質、世界是物質這種說法雖然有一定道理,但也會引起大家的爭論。   

用科學嚴謹的語言表述我手裏拿着的蘋果,表述世界及其各種事物:我手裏拿着的蘋果是具體的水果、是具體的食物、是具體的物、是具體的物質。世界及其各種事物是物質的存在和表現形式,是具體存在和表現形式的物質。

   抽象類是一個類,它由一些抽象的方法和屬性組成。所謂抽象的方法就是一些只定義了方法的基本信息(如方法名,返回類型,參數信息),而沒有具體實現的代碼的方法。從抽象類的定義,我們可以看出抽象類就是一般具體事物的概念是統一的,它是個別具體事物共性的抽象。

1.3.3       對象與絕對具體事物概念統一的

什麼是具體事物?具體事物是同抽象事物既相互對立又相互統一的認識對象,是個別具體事物和一般具體事物、絕對具體事物和相對具體事物組成的,具有客觀實在性規定的對立統一體。   

具體事物有兩種存在和表現形式:一種是個別具體事物,我稱它爲絕對具體事物;另一種是一般具體事物我稱它爲相對具體事物。   

個別具體事物或絕對具體事物是可以被人通過感覺器官感覺到的具體事情和具體物體。個別具體事物或絕對具體事物普遍具有客觀實在性的規定。   

個別具體事物或絕對具體事物普遍具有現實和客觀的形態,這種客觀和現實的形態能夠被人的眼睛看到,被人的手和身體接觸到,被人的鼻子嗅到,被人的舌頭嚐到,被人的耳朵聽到,能在人的大腦中形成關於個別具體事物或絕對具體事物的綜合映像。   

一般具體事物和相對具體事物是不能被人通過感覺器官感覺到的具體事情和具體物體。一般具體事物或相對具體事物也普遍具有客觀實在性的規定。   一般具體事物或相對具體事物不具有現實和客觀的形態,它雖然不能被人感到,但是可以被人通過比較個兩個以上的個別具體事物或絕對具體事物而知道。人們通過對兩個以上的個別具體事物進行的比較,既可以發現它們分別具有的不同規定和內容,也可以發現它們具有的共同規定和內容,然後把它們共同具有的規定和內容在思維中抽取出來並加以冠名,從而形成和產生了虛擬或觀念形態的一般具體事物和相對具體事物。   

具有唯一指稱作用的專用名詞所表述的認識對象就是個別具體事物或絕對具體事物。普通名詞所表述的認識對象就是一般具體事物或相對具體事物。   物質不僅是專用名詞所表述的個別具體事物或絕對具體事物具有的一般規定,而且還是普通名詞所表述的一般具體事物或相對具體事物具有的一般規定。所以說物質是各種具體事物共同具有的客觀實在性規定,是各種具體事物的組成部分。   物質不僅存在於個別具體事物或絕對具體事物之中,通過個別具體事物或絕對具體事物展現着自身的美麗,而且還存在於一般具體事物和相對具體事物之中,通過一般具體事物和相對具體事物展現着自身的魅力。因此可以說,具體事物是物質的存在和表現形式。   

每個具體事物都具有特殊性和普遍性的規定,是特殊性和普遍性組成的統一體。每一個具體事物都具有區別於其它個別具體事物的自身特點,具有自身唯一性的規定,世界中不存在兩個完全相同、沒有絲毫差別的具體事物。個別具體事物或絕對具體事物是這樣,一般具體事物或相對具體事物也是這樣。   

每一個具體事物都具有相同於其它個別具體事物的共同點,具有共性和普遍性的規定,世界中不存在兩個完全不同、沒有絲毫共同之處的個別具體事物。   每個具體事物總是從屬於一定的種、類、屬、組,具有一定種、類、屬、組成員的共性和普遍性規定。   

個別具體事物是許多規定、性能、關係組成的統一體。個別具體事物或絕對具體事物具有的各種規定、性能、關係具有客觀實在性的規定。如果不承認個別具體事物的各種規定、性能、關係具有客觀實在性,人爲地把個別具體事物具有的各種規定、性能和關係同個別具體事物機械地割裂開來,個別具體事物就不是具有生命、現實生活中的活生生的個別具體事物了。   

個別具體事物或絕對具體事物、一般具體事物和相對具體事物是多種規定的綜和,是多樣性的統一,是處在一定外部聯繫和一定運動過程之中的認識對象。個別具體事物具有的各種規定、關係、性能、規律、屬性就是具體事物具有的內容和組成部分。   

對象是類的實例。對象在構造時以類爲藍本,創建對象的過程叫做實例化。對象是類所表示的抽象事物的具體實例。如果說類是一個抽象概念,那麼對象就是具體對象。比如我們說‘人’就是一個抽象概念,但是具體到某個人,比如你,我,他,就是一個‘人’對象。從對象的定義,我們可以分析出,它與絕對具體事物的中具有唯一指稱作用的專用名詞所表述的認識對象就是個別具體事物或絕對具體事物的概念是統一的。

1.3.4       接口是與絕對抽象事物概念統一的

什麼是抽象事物?抽象事物是同具體事物既相互對立又相互統一的認識對象,是相對抽象事物和絕對抽象事物組成的、具有客觀實在性規定的對立統一體。   普通名詞、動詞、形容詞、數量詞表述的認識對象都是抽象事物,都具有客觀實在性的規定。   

抽象事物是具體事物的思維分解體,我稱個別具體事物爲元體,所以稱抽象事物爲元分體。抽象事物或元分體具有不可被人感到但可被人知道的認識特徵。   每個抽象事物都具有自身內容的規定和存在範圍的限制。根據每個抽象事物內容和存在範圍的差別,我把抽象事物分爲兩種具體的存在和表現形式:相對抽象事物和絕對抽象事物。   

什麼是相對抽象事物?相對抽象事物是具體事物的組成部分,是抽象事物的具體存在形式之一,是分別存在於不同個體、不同種類具體事物之中的特殊性規定、規律、性能和本質,也是同一種類具體事物的每個成員具有的種或類的共性和普遍性規定。   

普通名詞“人”表述的認識對象就是相對抽象事物。 相對抽象事物和相對具體事物可以是同一個事物。“人”相對於“動物”來說具有更多的內容規定,更接近個別具體事物。“人”相對於“黑人”、“老人”和“女人”來說具有更少的內容規定,離個別具體事物更遠、更抽象。因此可以說“人”既是相對具體事物又是相對抽象事物。

絕對抽象事物是具體事物的組成部分,是抽象事物的具體存在形式之一,是每個具體事物和每個相對具體事物都具有的一般規定、規律、性能和本質,是存在於具體事物、相對具體事物或相對抽象事物之中的認識對象。   

絕對抽象事物也被稱爲一般抽象事物。絕對抽象事物或一般抽象事物來源於具體事物和相對抽象事物,是具體事物和相多抽象事物的組成部分。爲了強調絕對抽象事物同具體事物、同相對抽象事物的一體關係,爲了強調絕對抽象事物同元體、元實體的一體關係,我稱絕對抽象事物爲元本體。   

絕對抽象事物或元本體是處在普遍聯繫之中的,沒有任何存在範圍限制的認識對象。準確地說,絕對抽象事物或元本體首先是人類已經接觸過、經驗過、認識過的個別具體事物具有的一般規定、規律、性能、本質,其次它也必定是人類未知的一切個別具體事物具有的共性和普遍性。從這種意義上可以說絕對抽象事物或元本體是世界統一的基礎。   

物質是絕對抽象事物具有的客觀實在性規定,是絕對抽象事物的內容和組成部分。是人通過大腦的思維,從各種事物中發現和抽取出來的絕對抽象事物。   每個具體事物、每個抽象事物都具有客觀實在性的規定和本質,都包含着物質。沒有客觀實在性的規定、不包含物質的具體事物或抽象事物是不可思議的。  

接口是一些嚴格限制的方法的集合。這些方法只包括一些特徵:方法名,參數的數目和種類,且這些方法只能是抽象的和公開的。也就是說接口中的方法不僅沒有具體實現的代碼,連返回類型都沒有了。並且這些規定是嚴格的,說不能有,就是不能有(返回類型可以有),不向抽象類那麼好說話。從接口的定義我們可以看出與絕對抽象事物或一般抽象事物來源於具體事物和相對抽象事物,是具體事物和相多抽象事物的組成部分,爲了強調絕對抽象事物同具體事物、同相對抽象事物的一體關係,爲了強調絕對抽象事物同元體、元實體的一體關係,我稱絕對抽象事物爲元本體的概念是一致的,是絕對抽象事物中運動是物質的根本性質是相吻合的。接口是物質的的根本性質的運動這一性質在信息世界中的體現。

 

2       JAVA中類對象接口的應用和意義

2.1  爲什麼要使用抽象類

那爲什麼要引出抽象類這麼個東西呢,它能完成哪些類幹不了的事呢?舉例說明:比如說有個蘋果類,它有個吃的方法,代碼是洗了就可以吃。那它就可以生成實例,蘋果一,蘋果二,它們都有個吃的方法,都是洗了就可以吃。再比如說有個香蕉類,它也有個吃的方法,代碼是扒了皮再吃。也可以生成實例,香蕉一,二,三,都是扒了皮吃。然後又有個抽象類,叫水果,它也有個吃的方法,但是是空的,因爲不同的水果有不同的吃法。

這樣我們就可以看出來,水果這個抽象類沒法實例化,因爲它沒法具體到一樣東西,而蘋果和香蕉就可以繼承這個抽象類,並可以實例化成每個蘋果,香蕉。

事實上抽象類就是某些類共有的屬性和方法的集合,其他類繼承這個抽象類,其優點是當需要對這些類的共有屬性做修改的時候,只需修改這個抽象類就可以了。

2.2  爲什麼要用接口

爲什麼要用抽象類我們知道了,但又爲什麼要引入接口這個東西呢?它又能爲些什麼常人所不能爲的事呢?事實上,在JAVA中,因爲一些原因,只提供了單繼承這樣一種繼承方式,那就帶來一個問題,我有個東西,他不只有你這麼一個抽象類的特點,還有別的抽象類裏的特點,那你又不提供多繼承,怎麼辦?於是在羣情激憤中,衆望所歸的接口就橫空出世了。接口解決了多繼承的問題,一個類可以實現多個接口,同時也可以實現一個抽象類。同樣,乾巴說一直不是我的風格,我舉個例子。比如說我有個抽象類-人,然後有個類-中國人繼承了這個抽象類,但是我現在不只想生成一箇中國人類,我想生成箇中國的飛人類,但人這個抽象類中並沒有飛這個方法,我們又不能再去繼承個鳥的抽象類去,所以就去繼承了個帶飛的方法的接口,於是——超人,誕生了!

2.3  接口和抽象類的區別

關於抽象類和接口的區別,我們根據以上的內容,完全可以推出以下幾點:

⑴抽象類是單繼承的,接口可以多繼承。

⑵抽象類的方法可以是非抽象的,而接口的方法則必須是抽象的。

由以上兩點我們又可以推出以下幾點:

⑶在繼承類中可以不實現抽象類的方法。這裏有兩種情況,一種是不實現抽象類中的非抽象方法,繼承類還是一個普通類;另一種是不實現抽象類中的抽象方法,這時繼承類也只能是一個抽象類。而接口的方法在繼承類中都是必須實現的。

⑷在抽象類中增加一個方法,繼承類中可以不做任何處理;而對於接口來說,則必須在繼承類中添加新增加的方法的實現。

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章