Запечатанная тайна
Всем известно, что если очень хочется запретить наследовать класс, то можно:
Экспериментируя в своём пет-проекте, я случайно узнал об ещё одной возможности этого ключевого слова.
Если мы хотим запретить переопределение метода, то это тоже можно сделать:
А вам приходилось запрещать переопределение метода в коммерческой практике?
sealed
о которой ты мог не знать 😱Всем известно, что если очень хочется запретить наследовать класс, то можно:
sealed class Foo
{
public void Bar()
{
Console.WriteLine("StepOne");
}
}
Экспериментируя в своём пет-проекте, я случайно узнал об ещё одной возможности этого ключевого слова.
Если мы хотим запретить переопределение метода, то это тоже можно сделать:
class XПопытка переопределить метод, помеченный
{
protected virtual void F() { Console.WriteLine("X.F"); }
protected virtual void F2() { Console.WriteLine("X.F2"); }
}
class Y : X
{
sealed protected override void F() { Console.WriteLine("Y.F"); }
protected override void F2() { Console.WriteLine("Y.F2"); }
}
class Z : Y
{
protected override void F2() { Console.WriteLine("Z.F2"); }
}
sealed
, заставит компилятор завершить работу с ошибкой CS0239.А вам приходилось запрещать переопределение метода в коммерческой практике?