c#密封班级密封所有覆盖成员?

时间:2010-05-07 14:25:19

标签: class

如果我密封了一个类,所有覆盖的成员都被隐式密封,或者我是否必须明确地密封每个覆盖成员?

public sealed ClassA : ClassB
{

// Is this implicitly sealed or do I have to explicitly seal
public override void Method1()
{}

}

TIA。

克劳斯

4 个答案:

答案 0 :(得分:3)

来自MSDN

  

密封类不能继承。使用密封类作为基类是错误的。在类声明中使用sealed修饰符以防止继承该类。

鉴于您无法继承课程,因此无需密封个别成员。确实没有道理。

我在密封的类和方法上找到了a tutorial,可能会进一步澄清。

答案 1 :(得分:1)

封闭类意味着您无法继承它。密封密封班的成员是没有意义的。

答案 2 :(得分:0)

你封锁了整个ClassA。

这意味着,您可以继承并覆盖ClassB定义,但不能继承ClassA。

答案 3 :(得分:0)

当你将Seal关键字添加到一个类时它会密封它的上下文中的所有内容,但是它并没有将任何内容封存在它的上下文中,这意味着你从ClassA继承了classB所以即使你认为你也是如此密封ClassA,你仍然可以改编或覆盖classB方法。