當對乙個類應用 sealed 修飾符時,此修飾符會阻止其他類從該類繼承。
在下面的示例中,類 b 從類 a 繼承,但是任何類都不能從類 b 繼承。
class a {}
sealed class b : a {}
還可以在重寫基類中的虛方法或虛屬性的方法或屬性上使用 sealed 修飾符。這將使您能夠允許類從您的類繼承,並防止它們重寫特定的虛方法或虛屬性。
在下面的示例中,c 從 b 繼承,但 c 無法重寫在 a 中宣告並在 b 中密封的虛函式 f。
class a
protected virtual void f()
console.writeline("a.f");
protected virtual void f2()
console.writeline("a.f2");
class b : a
sealed protected override void f()
console.writeline("b.f");
protected override void f2()
console.writeline("b.f2");
class c : b
protected override void f2()
console.writeline("c.f2");
當在類中定義新的方法或屬性時,通過不將這些方法或屬性宣告為 virtual,可防止派生類重寫這些方法或屬性。將 abstract 修飾符用於密封類是錯誤的做法,因為抽象類必須由提供抽象方法或屬性的實現的類繼承。當應用於方法或屬性時,sealed 修飾符必須始終與 override 一起使用。由於結構是隱式密封的,因此它們不能被繼承。
sealed class sealedclass
public int x;
public int y;
class sealedtest2
static void main()
sealedclass sc = new sealedclass();
sc.x = 110;
sc.y = 150;
console.writeline("x = , y = ", sc.x, sc.y);
// output: x = 110, y = 150
'myderivedc' cannot inherit from sealed class 'sealedclass'.
修飾符 許可權修飾符
四種形式許可權修飾符的訪問情況 publicprotected不寫private 同乙個類中 四種都可以 同一包中的不同類 除了private剩下都可以 不同包下的子類 public protected 可以 不同包下的不同類 只有public可以 許可權修飾符 public protected 預...
C 中的訪問修飾符 修飾符 類
版本visual studio 2010 主要參考 修飾符用於修改型別和型別成員的宣告 訪問修飾符 訪問級別 public 訪問不受限制 類內和任何類外中訪問 protected 可訪問域限定於類內或從該類派生的類內 類內和該類的派生類 internal 可訪問域限定於類所在的程式集內 該類所在程式...
C 修飾符 類修飾符和成員修飾符
c 修飾符之類修飾符 public internal partial abstract sealed static internal 本程式集內的成員可以訪問。partial 部分類,可以將乙個類分成幾部分寫在不同檔案中,最終編譯時將合併成乙個檔案,且各個部分不能分散在不同程式集中。c 修飾符之成員...