C#繼承

繼承是軟體復用的一種形式。使用繼承可以復用現有類的數據和行為,為其賦予新功能而創建出新類。

節省開發時間,重用經過實踐檢測和調試的高質量代碼,提供系統的質量。

在現有類(基類、父類)上建立新類(派生類、子類)的處理過程稱為繼承。派生類能自動獲得基類的除了構造函式和析構函式以外的所有成員,可以在派生類中添加新的屬性和方法擴展其功能。

基本介紹

  • 中文名:繼承
  • 外文名:inherit
  • 含義:子類對父類程式的復用
1.繼承的定義和使用
在現有類(基類、父類)上建立新類(派生類、子類)的處理過程稱為繼承。派生類能自動獲得基類的除了構造函式和析構函式以外的所有成員,可以在派生類中添加新的屬性和方法擴展其功能。
<訪問修飾符>class
派生類名:
基類名
{//類的代碼}
繼承的特性:
可傳遞性:C從B派生,B從A派生,那么C不僅繼承B也繼承A。
單一性:只能從一個基類中繼承,不能同時繼承多個基類繼承中的訪問修飾符base和this關鍵字基類的構造函式和析構函式不能被繼承的。但可以使用關鍵字base來繼承基類的構造函式。
C#中的base關鍵字代表基類,使用base關鍵字可以調用基類的構造函式、屬性和方法。
2.方法的重載、重寫和隱在基類和派生可以存在同名方法,這些同名的方法可以重載、重寫和隱藏。
(1)重載(方法同名,但參數列表不同)
重載是在同一個作用域內發生(比如一個類裡面),定義一系列同名方法,但是方法的參數列表不同,就是簽名不同,簽名由方法名和參數組成。能通過傳遞不同參數來決定到底調用哪一個同名方法。返回值類型不同步能構成重載,因為簽名不包括返回值。同名方法返回值的類型要相同,要不不能重載。
(2)重寫(方法同名,且參數列表相同)
基類方法中使用virtual關鍵字聲明方法和派生類中使用override關鍵字聲明方法名稱相同,參數列表也相同。
基類方法和派生類方法的簽名相同,實現了派生類重寫基類中的同名方法
(3)隱藏
基類中的方法不聲明virtual,在派生類中聲明與基類同名時,需要使用new關鍵字,以隱藏基類同名方法。
3.統一的標準:接口
接口的定義:接口用來描述一種程式的規定,可定義屬於任何類或結構的一組相關行為,接口可由方法、屬性、事件、索引器、或這4種成員類型的任何組合構成。接口不能包含常數、欄位、運算符、實例構造函式、析構函式或類型,也不能包含任何種類的靜態成員。接口一定是公共的。
接口語法如下:
<訪問修飾符>
interface
接口名{//接口主體}
接口的實現
C#中通常把派生類和基類的關係稱為繼承,類和接口的關係稱為實現。接口不能定義構造函式,所以接口不能實例化。
接口的繼承
C#中的派生類只能有一個基類,不支持類的多重繼承,但可以繼續承接多個接口,通過接口實現多繼承性。
C#中接口可以多繼承接口之間可以互相繼承,普通類和抽象類可以繼承自接口。一個類可以同時繼承一個類和多個接口,但接口不能繼承類。
4.抽象類和密封類
用來描述共性的類是抽象類,抽象類中不考慮具體實現,只確定必須具有的行為,即確定抽象方法。

相關詞條

熱門詞條

聯絡我們