Sobes.tech
Back to questions
Junior — Middle
68

Можно ли определить виртуальную функцию в не-наследуемом классе?

Answer from AI

sobes.tech AI

В C# виртуальная функция (метод) предназначена для переопределения в производных классах. Если класс объявлен как sealed (не-наследуемый), то определять в нём виртуальные методы можно, но переопределять их уже нельзя, так как наследование запрещено.

Пример:

sealed class MyClass
{
    public virtual void MyMethod()
    {
        Console.WriteLine("Виртуальный метод в запечатанном классе");
    }
}

Здесь метод MyMethod виртуальный, но поскольку класс MyClass запечатан, никто не сможет его унаследовать и переопределить этот метод. Таким образом, виртуальные методы в не-наследуемом классе технически возможны, но их смысл ограничен.