4 1 1 類的繼承

2021-07-30 15:39:05 字數 1103 閱讀 1433

4.1 類的繼承與多型

4.2 結構與介面

4.3 集合與索引器

4.4 異常處理

4.5 委託和匿名方法

4.6 事件

4.7 預處理指令

4.8 泛型

4.1.1 繼承

繼承是物件導向程式設計的最重要的特徵之一。任何類都可以從另外乙個類繼承,這就是說,這個類擁有他的繼承類的所有成員。

在物件導向程式設計中,被繼承的類為父類或基類;繼承的類稱為子類或派生類。

c#中提供了類的繼承機制,但是只支援單繼承,不能同時繼承多個類。

1. 使用繼承

繼承的基本思想是基於某個基類的擴充套件,制定出乙個新的派生類,派生類可以繼承基類原有的屬性和方法,也可以增加原來基類所不具有的屬性和方法,或者直接重新重寫基類中的某些方法。

在c#中使用「:」來標識兩個類的繼承關係。繼承乙個類是,類成員的訪問性是乙個重要問題。派生類不能訪問基類的私有成員,但是可以訪問其公共成員。也就是說,只要使用public宣告類成員,就可以讓乙個類成員被基類和派生類同時訪問,同時也可以被外部**訪問。

為了解決基類成員訪問問題,c#還提供了另外一種可訪問性——protected,只有派生類(子類)才能訪問protected成員,基類和外部**都不能訪問protected成員。

派生類(子類)不能繼承基類中所定義的private成員,只能繼承基類public成員和protected成員 。

2. base 關鍵字

base關鍵字用於從派生類中訪問基類的成員。主要有兩種形式:

呼叫基類上已經被其他方法重寫的方法。

指定建立派生類例項時呼叫的基類建構函式。

基類訪問只能在建構函式、例項方法或例項屬性訪問器中進行,因此,從靜態方法中使用base關鍵字是錯誤的。

3. 繼承中的建構函式和析構函式

在進行類的繼承時,派生類的建構函式會隱式呼叫基類的無參建構函式,但是如果基類也是從其他的類派生的,c#會根據層次結構找到最頂層的基類,並呼叫基類的建構函式,然後依次呼叫各基派生類的建構函式。

析構函式則和建構函式順序相反。

(41 1)類模板之類模板的定義

class compare int 建構函式 float max 求最大值 float min 求最小值 private int x,y class compare double 建構函式 float max 求最大值 float min 求最小值 private double x,y templa...

python 類 繼承 python 類的繼承

1 所用的類都可以被繼承 2 沒有繼承其他類的類必然有乙個父類 object 3子類可以擁有父類的 init 裡的類容 派生子類除了父類的一些屬性,還會有自己的屬性和方法,這些就叫派生 如何使用 實現 class animal def init self,name,attack,hp self.na...

類的繼承 多繼承

多繼承要注意很多地方,以下 只是最基本多繼承方式,下面會講到多繼承的基本格式和繼承方法 簡單說明 1 如果在子類中需要父類的構造方法就需要顯示的呼叫父類的構造方法,或者不重寫父類的構造方法。2 在呼叫基類的方法時,需要加上基類的類名字首,且需要帶上 self 引數變數。區別在於類中呼叫普通函式時並不...