c#密封類,密封方法

爲了避免濫用繼承,c#中提出了密封類的概念。

1.1密封類的概念及聲明

密封類可以用來限制擴展性,如果密封了某個類,則其他類不能從該類繼承。如果密封了某個成員,則派生類不能重寫該成員的實現。默認情況下,不應密封類型和成員。密封可以防止對庫的類型和成員進行自定義,但也會影響某些開發人員對可用性的認識。

c#中使用密封類時,如果類滿足如下條件,則應將其密封

  •  類是靜態類。
  •  類包含帶有安全敏感信息的繼承的受保護成員。
  •  類繼承多個虛成員,並且密封每個成員的開發和測試開銷明顯大於密封整個類。
  •  類是一個要求使用反射進行快速搜索的屬性。密封屬性可提高反射在檢索屬性時的性能。

c#密封類需要用到sealed關鍵字,具體語法如下

訪問修飾符 sealed class 類名:基類或接口
{
    //類成員
}

在申明密封方法時,必須通過重寫基類中的虛方法實現。

1.密封類不能作爲基類被繼承,但他可以繼承別的類或接口

2.在密封類中不能聲明受保護成員或虛成員,因爲受保護成員只能從派生類進行訪問,而虛成員只能在派生類中重寫。

3.由於密封類的不可繼承性,因此密封類不能聲明爲抽象的,即sealed修飾符不能與abstract修飾符同時使用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章