第四章 繼承

2021-08-14 10:26:48 字數 2566 閱讀 6250

1、繼承的型別

2、c#是否支援多重繼承?

開發c#的重要目標是簡化健壯**的編寫工作,因此,不支援多重繼承,

c#允許型別派生自多個介面——多重介面繼承

3、繼承的語法結構

宣告派生自另乙個類

class myclass: mybaseclass類派生於介面,則用逗號分隔介面

class myclass: iinte***ce1, iinte***ce2

4、什麼是虛方法?

將基類函式宣告為virtual,就可以在任何派生類中重寫該函式,

需要使用override關鍵字;也可以把屬性宣告為virtual。

class mybaseclass

}

5、隱藏方法

簽名相同的方法在基類和派生類中都進行了宣告,但沒有宣告為virtual或者override,派生類就會隱藏基類的方法。

在開發中,基類和派生類有相同名字的方法,但卻沒有任何關係,為了能正常編譯,就要隱藏乙個方法,會使用new關鍵字宣告。

class

myclass: mybaseclass

}

6、呼叫函式的基類版本

語法:base.()呼叫基類中的任何方法。

7、抽象類和抽象函式

把類和函式宣告為abstract。

抽象類不能例項化,抽象函式不能直接實現。

乙個類包含了抽象函式,則該類必須宣告為抽象的。

8、密封類和密封方法

把類和方法宣告為sealed。

對於類,表示不能繼承該類;對於方法,表示不能重寫該方法。

9、建構函式的執行順序

建構函式先呼叫system.object的建構函式,

再按照繼承的層次結構從上往下進行,直到最終要例項化的類為止,

10、帶引數的建構函式

在不考慮靜態建構函式的情況下(因為靜態構造僅執行一次,且定義靜態建構函式的時候並不多)

子類在呼叫父類的建構函式時,預設情況是呼叫父類的無參建構函式,

如果父類只有帶參建構函式,而沒有無參建構函式,那麼編譯時會報錯;不過我們可以通過base關鍵字來指定呼叫帶參建構函式。

//父類

public

class superclass

}//子類

public

class childclass : superclass

}

11、介面的定義

在語法上與宣告抽象類完全相同,但不允許提供介面中任何成員的實現方式。

一般情況下,介面只能包含方法、屬性、索引器和事件的宣告。

12、派生的介面

介面可以彼此繼承,其方式與類的繼承方式相同。

可以在派生介面中定義新的方法,

但是,實現派生自該派生介面的類必須實現派生介面和基類介面的所有方法。

13、修飾符的分類

1、可見性修飾符

修飾符應用

說明public

所有型別或成員

任何**均可以訪問

protected

型別和內嵌型別的所有成員

只有派生的型別可以訪問

internal

所有型別或成員

只能在包含它的程式集中訪問

private

型別和內嵌型別的所有成員

只能在它所屬的型別中訪問

protected internal

型別和內嵌型別的所有成員

只能在包含它的程式集和派生型別的任何**中訪問

2、其他修飾符

修飾符應用

說明new

函式成員

成員用相同的簽名隱藏繼承的成員

static

所有成員

成員不作用於類的具體例項

virtual

僅函式成員

成員可以由派生類重寫

abstract

僅函式成員

虛擬成員定義了成員的簽名,但沒有提供實現**

override

僅函式成員

成員重寫了繼承的虛擬或抽象成員

sealed

類、方法和屬性

對於類,不能繼承自密封類,對於屬性和方法,任何派生類中的任何成員都不能重寫該成員

extern

僅靜態方法

成員在外部用另一種語言實現

第四章 繼承

一 為什麼要繼承 在物件導向中我們將具有很多重複內容的類中的內容提取出來,寫成乙個單獨的類 其他類只需要繼承就能取得這些功能,同時可以在自己類中寫入獨特的自定義方法 二 繼承語法 inte ce circle nsobject 繼承是在介面中定義的 冒號後的類名是要整合的類,nsobject 是co...

第四章 物件

三個特性 身份 型別 值 每個物件都有唯一的身份來標識自己,使用內建函式id 得到。例子 usr bin env python coding utf 8 a 32 print a b a print id a id b 結果 d python27 python.exe e workp python ...

第四章 其他

sizeof和strlen 區別sizeof以位元組為單位給出資料的大小,strlen 函式以字元為單位給出字串的長度。使用strlen 函式要加 include標頭檔案。sizeof計算字元時會將標誌字串結束的不可見的空字元計算在內。定義符號常量 方法一 define name value 優點 ...