<分区>
Code Snippet 1 (Compilation Error) - A.M2() cannot be sealed because it is not an override
abstract class A
{
public abstract void M1();
public sealed void M2()
{
// Do Something
}
}
Code Snippet 2 (Works Fine)
abstract class A
{
public abstract void M1();
public virtual void M2()
{
}
}
class B : A
{
public sealed override void M1()
{
}
public sealed override void M2()
{
}
}
问题 - 如果我在 Abstract class
本身中提供方法的实现,为什么 C# 不允许我将它标记为 Sealed
,为什么它需要我在子类中覆盖,然后将其标记为密封。我无法理解这种差异