Sobes.tech
Junior — Middle

É possível definir uma função virtual numa classe que não pode ser herdada?

sobes.tech IA

Resposta da IA

No C#, uma função virtual (método) destina-se a ser sobrescrita em classes derivadas. Se uma classe for declarada como sealed (selada), pode-se definir métodos virtuais nela, mas não é possível sobrescrevê-los, pois a herança é proibida.

Exemplo:

sealed class MyClass
{
    public virtual void MyMethod()
    {
        Console.WriteLine("Método virtual numa classe selada");
    }
}

Aqui, o método MyMethod é virtual, mas como a classe MyClass é selada, ninguém poderá herdá-la e sobrescrever esse método. Assim, métodos virtuais em uma classe não herdável são tecnicamente possíveis, mas seu propósito é limitado.