Ключевое слово «sealed» можно использовать только в том случае, если вы переопределяете виртуальный метод, но не хотите, чтобы класс, производный от вашей реализации, переопределял его снова.Все, что вам нужно - объявить метод не виртуальным.
Как уже отмечалось, на самом деле существует ключевое слово "new", которое позволяет скрыть метод.Но до тех пор, пока вы используете ссылку на ваш базовый класс, ваш базовый метод всегда вызывается:
class BaseClass
{
public void Foo() { Console.WriteLine("Foo"); }
}
class Derived : BaseClass
{
public new void Foo() { Console.WriteLine("Bar"); }
}
public static void Main()
{
Derived derived = new Derived();
derived.Foo(); // Prints "Bar"
BaseClass baseClass = derived;
baseClass.Foo(); // Prints "Foo"
}
Поскольку предоставление базового класса имеет смысл, только если вы используете указатель «BaseClass»везде ваш метод не может быть скрыт.