sealed 修飾符能夠應用於類、實例方法和屬性。密封類不能被繼承。密封方法會重寫基類中的方法,但其自己不能在任何派生類中進一步重寫。當應用於方法或屬性時,sealed 修飾符必須始終與 override(C# 參考) 一塊兒使用。javascript
在類聲明中使用 sealed 修飾符可防止繼承此類,例如:html
sealed class SealedClass
{
public int x;
public int y;
}
將密封類用做基類或將 abstract 修飾符與密封類一塊兒使用是錯誤的。java
結構是隱式密封的;所以它們不能被繼承。編程
有關繼承的更多信息,請參見繼承(C# 編程指南)。ide
// cs_sealed_keyword.cs
using System;
sealed class SealedClass
{
public int x;
public int y;
}
class MainClass
{
static void Main()
{
SealedClass sc = new SealedClass();
sc.x = 110;
sc.y = 150;
Console.WriteLine("x = {0}, y = {1}", sc.x, sc.y);
}
}
x = 110, y = 150
在前面的示例中,若是試圖經過使用下面的語句從密封類繼承:spa
class MyDerivedC: SealedClass {} // Errorcode
將收到錯誤消息:xml
'MyDerivedC' cannot inherit from sealed class 'SealedClass'htm