咨詢電話:023-6276-4481
熱門文章
電 話:023-6276-4481
郵箱:broiling@qq.com
地址:重慶市南岸區(qū)亞太商谷6幢25-2
繼承是軟件復用的一種形式。使用繼承可以復用現(xiàn)有類的數(shù)據(jù)和行為,為其賦予新功能而創(chuàng)建出新類。
節(jié)省開發(fā)時間,重用經(jīng)過實踐檢測和調試的高質量代碼,提供系統(tǒng)的質量。
在現(xiàn)有類(基類、父類)上建立新類(派生類、子類)的處理過程稱為繼承。派生類能自動獲得基類的除了構造函數(shù)和析構函數(shù)以外的所有成員,可以在派生類中添加新的屬性和方法擴展其功能。[1]
1.繼承的定義和使用
在現(xiàn)有類(基類、父類)上建立新類(派生類、子類)的處理過程稱為繼承。派生類能自動獲得基類的除了構造函數(shù)和析構函數(shù)以外的所有成員,可以在派生類中添加新的屬性和方法擴展其功能。
<訪問修飾符>class
派生類名:
基類名
{//類的代碼}
繼承的特性:
可傳遞性:C從B派生,B從A派生,那么C不僅繼承B也繼承A。
單一性:只能從一個基類中繼承,不能同時繼承多個基類繼承中的訪問修飾符base和this關鍵字基類的構造函數(shù)和析構函數(shù)不能被繼承的。但可以使用關鍵字base來繼承基類的構造函數(shù)。
C#中的base關鍵字代表基類,使用base關鍵字可以調用基類的構造函數(shù)、屬性和方法。
2.方法的重載、重寫和隱在基類和派生可以存在同名方法,這些同名的方法可以重載、重寫和隱藏。
(1)重載(方法同名,但參數(shù)列表不同)
重載是在同一個作用域內發(fā)生(比如一個類里面),定義一系列同名方法,但是方法的參數(shù)列表不同,就是簽名不同,簽名由方法名和參數(shù)組成。能通過傳遞不同參數(shù)來決定到底調用哪一個同名方法。返回值類型不同步能構成重載,因為簽名不包括返回值。同名方法返回值的類型要相同,要不不能重載。
(2)重寫(方法同名,且參數(shù)列表相同)
基類方法中使用virtual關鍵字聲明方法和派生類中使用override關鍵字聲明方法名稱相同,參數(shù)列表也相同。
基類方法和派生類方法的簽名相同,實現(xiàn)了派生類重寫基類中的同名方法
(3)隱藏
基類中的方法不聲明virtual,在派生類中聲明與基類同名時,需要使用new關鍵字,以隱藏基類同名方法。
3.統(tǒng)一的標準:接口
接口的定義:接口用來描述一種程序的規(guī)定,可定義屬于任何類或結構的一組相關行為,接口可由方法、屬性、事件、索引器、或這4種成員類型的任何組合構成。接口不能包含常數(shù)、字段、運算符、實例構造函數(shù)、析構函數(shù)或類型,也不能包含任何種類的靜態(tài)成員。接口一定是公共的。
接口語法如下:
<訪問修飾符>
interface
接口名{//接口主體}
接口的實現(xiàn)
C#中通常把派生類和基類的關系稱為繼承,類和接口的關系稱為實現(xiàn)。接口不能定義構造函數(shù),所以接口不能實例化。
接口的繼承
C#中的派生類只能有一個基類,不支持類的多重繼承,但可以繼續(xù)承接多個接口,通過接口實現(xiàn)多繼承性。
C#中接口可以多繼承接口之間可以互相繼承,普通類和抽象類可以繼承自接口。一個類可以同時繼承一個類和多個接口,但接口不能繼承類。
4.抽象類和密封類
用來描述共性的類是抽象類,抽象類中不考慮具體實現(xiàn),只確定必須具有的行為,即確定抽象方法。