sealed關鍵字的作用

2021-04-26 13:01:44 字數 1198 閱讀 8519

sealed關鍵字的作用:

在類宣告中使用sealed可防止其它類繼承此類;在方法宣告中使用sealed修飾符可防止擴充類重寫此方法。

sealed修飾符主要用於防止非有意的派生,但是它還能促使某些執行時優化。具體說來,由於密封類永遠不會有任何派生類,所以對密封類的例項的虛函式成員的呼叫可以轉換為非虛擬呼叫來處理。

密封類在宣告中使用sealed 修飾符,這樣就可以防止該類被其它類繼承。如果試圖將乙個密封類作為其它類的基類,c#將提示出錯。理所當然,密封類不能同時又是抽象類,因為抽象總是希望被繼承的。

在哪些場合下使用密封類呢?實際上,密封類中不可能有派生類。如果密封類例項中存在虛成員函式,該成員函式可以轉化為非虛的,函式修飾符virtual 不再生效。

讓我們看下面的例子:

1abstract

class

abstractclass25

sealed

class

sealedclass: abstractclass69

}

如果我們嘗試寫下面的**

class

otherclass: sealedclass

c#會指出這個錯誤,告訴你sealedclass 是乙個密封類,不能試圖從sealedclass 中派生任何類。

c#還提出了密封方法(sealedmethod) 的概念,以防止在方法所在類的派生類中對該方法的過載。對方法可以使用sealed 修飾符,這時我們稱該方法是乙個密封方法。

不是類的每個成員方法都可以作為密封方法密封方法,要作為密封方法必須對基類的虛方法進行過載,提供具體的實現方法。所以,在方法的宣告中,sealed 修飾符總是和override 修飾符同時使用。請看下面的例子**:

1using

system ;

2classa3

6public

virtual

void

g( )78

}9class

b: a

1013

override

public

void

g( )

1415}16

class

c: b

1720}

類b 對基類a 中的兩個虛方法均進行了過載,其中f 方法使用了sealed 修飾符,成為乙個密封方法。g 方法不是密封方法,所以在b 的派生類c 中,可以過載方法g,但不能過載方法f。

C 中sealed關鍵字的作用。

sealed 的中文意思是密封,顧名思義,就是由它修飾的類或方法將不能被繼承或是重寫。在此類宣告中使用sealed 可防止其它類繼承此類 在方法宣告中使用sealed 修飾符可防止擴充類重寫此方法。sealed 修飾符主要用於防止非有意的派生,但是它還能促使某些執行時優化。具體說來,由於密封類永遠不...

sealed(密封)關鍵字

sealed的 中文意思是密封,故名思義,就是由它修飾的類或方法將不能被繼承或是重寫。sealed關鍵字的作用 在類宣告中使用sealed可防止其它類繼承此類 在方法宣告中使用sealed修飾符可防止擴充類重寫此方法。sealed修飾符主要用於防止非有意的派生,但是它還能促使某些執行時優化。具體說來...

C 關鍵字掃盲 Sealed 密封

sealed官方描述 應用於某個類時,sealed 修飾符可阻止其他類繼承自該類。還可以對替代基類中的虛方法或屬性的方法或屬性使用 sealed 修飾符。這使你可以允許類派生自你的類並防止它們替代特定虛方法或屬性。專案 learnsealed 環境vs2017 net core2.0 應用於方法或屬...