類的繼承

  繼承作爲面向對象的三個重要特性的一個方面,在面向對象的領域有着極其重要的作用,好像沒聽說哪個面向對象的語言不支持繼承。繼承是PHP5 面向對象程序設計的重要特性之一,它是指建立一個新的派生類,從一個或多個先前定義的類中繼承數據和函數,而且可以重新定義或加進新數據和函數,從而建立了類的層次或等級。說的簡單點就是,繼承性是子類自動共享父類的數據結構和方法的機制,這是類之間的一種關係。在定義和實現一個類的時候,可以在一個已經存在的類的基礎之上來進行,把這個已經存在的類所定義的內容作爲自己的內容,並加入若干新的內容。比如你現在已經有一個“人”這個類了,這個類裏面有兩個成員屬性“姓名和年齡”以及還有兩個成員方法“說話的方法和走路的方法”,如果現在程序需要一個學生的類, 因爲學生的也是人,所以學生也有成員屬性“姓名和年齡”以及成員方法“說話的方法和走路的方法”,這個時候你就可以讓學生類來繼承人這個類,繼承之後,學生類就會把人類裏面的所有的屬性都繼承過來,就不用你再去重新聲明一遍這些成員屬性和方法了,因爲學生類裏面還有所在學校的屬性和學習的方法,所以在你做的學生類裏面有繼承自人類裏面的屬性和方法之外在加上學生特有的“所在學校屬性”和“學習的方法”, 這樣一個學生類就聲明完成了,繼承我們也可以叫做“擴展”,從上面我們就可以看出,學生類對人類進行了擴展, 在人類裏原有兩個屬性和兩個方法的基礎上加上一個屬性和一個方法擴展出來一個新的學生類。

 

  通過繼承機制,可以利用已有的數據類型來定義新的數據類型。所定義的新的數據類型不僅擁有新定義的成員,而且還同時擁有舊的成員。我們稱已存在的用來派生新類的類爲基類,又稱爲父類以及超類。由已存在的類派生出的新類稱爲派生類,又稱爲子類。

 

  在軟件開發中,類的繼承性使所建立的軟件具有開放性、可擴充性,這是信息組織與分類的行之有效的方法,它簡化了對象、類的創建工作量,增加了代碼的可重性。採用繼承性,提供了類的規範的等級結構。通過類的繼承關係,使公共的特性能夠共享,提高了軟件的重用性。

 

  在C++語言中,一個派生類可以從一個基類派生,也可以從多個基類派生。從一個基類派生的繼承稱爲單繼承;從多個基類派生的繼承稱爲多繼承。

 

  但是在PHP 和Java 語言裏面沒有多繼承,只有單繼承,也就是說,一個類只能直接從一個類中繼承數據,這就是我們所說的單繼承。

 

  例如:

 

  下面是“人”類的抽象

       

 

  下面我們做一個“學生類”,如果不是用繼承如下:

 

  

 

  通過上面“Student”類的定義,Student 類通過使用“extends”這個關鍵字把Person 類裏的所有成員屬性和成員方法都繼承過來了,並擴展了一個所在學校成員屬性“school”,和一個學習方法“study()”。現在子類“Student”裏面和使用這個類實例出來的對象都具有如下的屬性和方法:

 

  學生類“Student”裏面的成員屬性有:

 

  姓名:name;年齡:age;性別:sex;學校:school;學生類“Student”裏面的成員方法有:

 

  說話方法:say();學習方法:study();通過上面類繼承的使用簡化了對象、類的創建工作量,增加了代碼的可重性。但是從上面這一個例子上中“可重用性”以及其它的繼承性所帶來的影響,我們看的還不是特別的明顯,你擴展的去想一下,人有無數個崗位,比如上面的學生還有老師、工程師、醫生、工人等,很多很多,如果每個類都定義“人”都共同具有的屬性和方法,想一想會有很大的工作量,這些屬性和方法都可以從“Person”人類裏面繼承過來

 

 

發佈了58 篇原創文章 · 獲贊 1 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章