Поскольку Структуры неявно запечатаны, они не могут быть унаследованы, "запечатаны" предотвращает переопределение метода подклассами.
Смотрите пример: In the following example, Z inherits from Y but Z cannot override the virtual function F that is declared in X and sealed in Y.
class X
{
protected virtual void F() { Console.WriteLine("X.F"); }
protected virtual void F2() { Console.WriteLine("X.F2"); }
}
Класс Y наследует от класса X, и определит функцию F(), как: герметичный защищены переопределение недействительного F().
class Y : X
{
sealed protected override void F() { Console.WriteLine("Y.F"); }
protected override void F2() { Console.WriteLine("Y.F2"); }
}
класса Z, который наследует от Y, где была определена функция F(), как запечатаны, вы не можете переопределить функцию, так как ее определяют как "запечатаны"
class Z : Y
{
// Attempting to override F causes compiler error CS0239.
// protected override void F() { Console.WriteLine("C.F"); }
// Overriding F2 is allowed.
protected override void F2() { Console.WriteLine("Z.F2"); }
}
более
информация: sealed (C# Reference)
Не будучи помеченным как 'virtual' в базовом классе, чтобы разрешить' override', метод уже эффективно закрыт. Явное закрытие метода имеет значение только при переопределении и не требует дополнительных переопределений. –