如果我密封了一个类,所有覆盖的成员都被隐式密封,或者我是否必须明确地密封每个覆盖成员?
public sealed ClassA : ClassB
{
// Is this implicitly sealed or do I have to explicitly seal
public override void Method1()
{}
}
TIA。
克劳斯
答案 0 :(得分:3)
来自MSDN
密封类不能继承。使用密封类作为基类是错误的。在类声明中使用sealed修饰符以防止继承该类。
鉴于您无法继承课程,因此无需密封个别成员。确实没有道理。
我在密封的类和方法上找到了a tutorial,可能会进一步澄清。
答案 1 :(得分:1)
封闭类意味着您无法继承它。密封密封班的成员是没有意义的。
答案 2 :(得分:0)
你封锁了整个ClassA。
这意味着,您可以继承并覆盖ClassB定义,但不能继承ClassA。
答案 3 :(得分:0)
当你将Seal关键字添加到一个类时它会密封它的上下文中的所有内容,但是它并没有将任何内容封存在它的上下文中,这意味着你从ClassA
继承了classB
所以即使你认为你也是如此密封ClassA
,你仍然可以改编或覆盖classB
方法。