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.