如果我蓋封了一個班級,是否所有被覆蓋的成員都被隱式密封或者我是否必須明確地加蓋每個被覆蓋的成員?c#是否密封所有重寫成員的類封印?
public sealed ClassA : ClassB
{
// Is this implicitly sealed or do I have to explicitly seal
public override void Method1()
{}
}
TIA。
克勞斯
如果我蓋封了一個班級,是否所有被覆蓋的成員都被隱式密封或者我是否必須明確地加蓋每個被覆蓋的成員?c#是否密封所有重寫成員的類封印?
public sealed ClassA : ClassB
{
// Is this implicitly sealed or do I have to explicitly seal
public override void Method1()
{}
}
TIA。
克勞斯
從MSDN
密封類不能被繼承。使用密封類作爲基類是錯誤的。在類聲明中使用密封修飾符來防止類的繼承。
鑑於您無法繼承課程,因此無需密封個別成員。確實沒有任何意義。
我發現了a tutorial密封類和方法,可能會提供進一步的說明。
密封一個類意味着你不能從它繼承。密封封閉班級的成員是沒有意義的。
您封印了整個ClassA。
這意味着,您可以繼承並重寫ClassB定義,但不能ClassA。
當您添加封關鍵字一類是密封的一切在它的範圍內,但它不密封任何出它的背景下,這意味着你是ineheriting ClassA
從classB
所以即使想你已經封鎖ClassA
,你仍然可以從或覆蓋classB
方法。