如果我盖封了一个班级,是否所有被覆盖的成员都被隐式密封或者我是否必须明确地加盖每个被覆盖的成员?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
方法。