天天看點

《.NET程式員面試秘笈》----面試題5 描述sealed修飾符的使用

本節書摘來自異步社群《.net程式員面試秘笈》一書中的第1章,面試題5,作者: 張雲翯, 更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

.net程式員面試秘笈

【考點】sealed修飾符的意義,密封類和抽象類的關系,sealed修飾符的用法。

【出現頻率】

在ch01目錄下建立一個程式檔案,并命名為sealed.cs,編寫代碼如程式1.6所示。

《.NET程式員面試秘笈》----面試題5 描述sealed修飾符的使用

在指令行下編譯sealed.cs後,執行sealed程式,其效果如圖1.8所示。

《.NET程式員面試秘笈》----面試題5 描述sealed修飾符的使用

從本例代碼中可知,密封類一般情況下的使用方法和其他類一樣,隻是無法被繼承。代碼中product類的虛方法display方法被phone類重寫,而被重寫的display方法前面也加了sealed修飾符。在這種情況下,密封的display方法無法被所屬類的子類繼續重寫,如本例代碼中的phone3g類,無法重寫display方法。

說明:

密封類可用于單一功能的實作,并且防止被意外地繼承,産生非預期的效果,這也是封裝性的展現。

sealed修飾符用于修飾類、執行個體方法和屬性。sealed用于修飾類時,該類無法被繼承,是以該類也被稱為密封類。而abstract類(抽象類)必須被繼承才有意義,是以,sealed修飾符和abstract修飾符是互相排斥的,無法共存。密封方法會重寫基類的方法,sealed用于修飾執行個體被重寫的虛方法或虛屬性時,表示該方法或屬性無法再被重寫。

注意:

sealed修飾執行個體方法或屬性時,必須和override一起使用。

本文僅用于學習和交流目的,不代表異步社群觀點。非商業轉載請注明作譯者、出處,并保留本文的原始連結。

繼續閱讀