C# 關鍵字sealed

iDotNetSpace發表於2009-02-11

sealed 修飾符可以應用於類、例項方法和屬性。密封類不能被繼承。密封方法會重寫基類中的方法,但其本身不能在任何派生類中進一步重寫。當應用於方法或屬性時,sealed 修飾符必須始終與 override(C# 參考) 一起使用。

在類宣告中使用 sealed 修飾符可防止繼承此類,例如:


1
2      sealed class SealedClass
3{
4    public int x;
5    public int y;
6}
將密封類用作基類或將 abstract 修飾符與密封類一起使用是錯誤的。

結構是隱式密封的;因此它們不能被繼承。

有關繼承的更多資訊,請參見繼承(C# 程式設計指南)。

示例:

 1// cs_sealed_keyword.cs
 2using System;
 3sealed class SealedClass
 4{
 5    public int x;
 6    public int y;
 7}
 8
 9class MainClass
10{
11    static void Main()
12    {
13        SealedClass sc = new SealedClass();
14        sc.x = 110;
15        sc.y = 150;
16        Console.WriteLine("x = {0}, y = {1}", sc.x, sc.y);
17    }
18}
 

 輸出

x = 110, y = 150
在前面的示例中,如果試圖通過使用下面的語句從密封類繼承:

class MyDerivedC: SealedClass {} // Error

將收到錯誤訊息:

'MyDerivedC' cannot inherit from sealed class 'SealedClass'.

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-548717/,如需轉載,請註明出處,否則將追究法律責任。