C 回顧學習筆記三十二 密封類和密封方法

2021-08-08 15:59:11 字數 751 閱讀 3601

密封類:

密封類不允許被其他類繼承。使用sealed修飾符就可以標記乙個類是密封類,這樣就可以防止該類被其他類繼承。比如c#裡系統預定好的string類就是密封類。通過「轉到定義」可以發現string類被sealed修飾符標記。如圖所示:

密封類的知識點:

1.被定義為sealed的類通常都是一些有著固定作用、完成某種標準功能的類。

2.有時候定義密封類是為了提高效能,由於密封類不存在被繼承的問題,因而也不存在虛方法呼叫的問題,這樣程式執行時就可以對密封類的方法呼叫進行優化。

3.如果檢視將乙個密封類作為其他類的父類,將會報錯。因為密封類不能同時又是抽象類,因為抽象總是希望被繼承。

密封方法:將乙個非密封類中的某個方法宣告為密封方法,以防止在子類中對該方法進行重寫。比如:

第1步,父類a.cs的**:

class a

}

第2步,繼承父類的b.cs**:

class b : a

}

第3步,繼承b類的子類c.cs的**:

class c : b

}

b.cs對父類的虛方法helloworld()進行了重寫,並且使用了sealed修飾符,使得該方法成為了乙個密封方法。這樣c類在繼承自b類後,就無法將該方法重寫。

C 學習筆記(三十二) Array類

array 用方括號宣告陣列是c 中使用array類的表示法。在後台使用c 語法,會建立乙個派生自抽象基類array的新類。這樣陣列就是可以使用array定義的方法和屬性。array是抽象類,所以不能使用建構函式例項化。除了使用c 語法建立陣列例項,還可以使用靜態方法createinstance 建...

C 學習筆記 密封類與密封方法

密封類可以用來限制擴充套件性,如果密封了某個類,則其他類不可以從該類繼承 如果密封了某個成員,則派生類不能重寫該成員的實現。預設情況下,不應密封型別和成員。密封可以防止對庫的型別和成員進行自定義,但也影響某些開發人員對可用性的認識。c 中如果滿足以下條件,則應將其密封 1 類是靜態的 2 類包含帶有...

C 學習筆記(三十二) 之stack棧容器

老規矩 妹妹鎮樓 棧容器是單口的資料結構,特點是先進後出。資料只能從棧頂進入,也只能從棧頂取出,除此以外,沒有其他方法可以訪問棧容器的資料。因此,棧容器是沒有遍歷操作的,它只能從棧頂存資料,取資料,且只能在取出資料的情況下獲取該資料 沒有像遍歷那樣,能夠在不取出資料的情況下獲取容器中的任意資料。因此...