Sobes.tech
Junior

O que é um método virtual em C#?

sobes.tech IA

Resposta da IA

Um método virtual em C# é um método declarado com a palavra-chave virtual na classe base, que pode ser sobrescrito em classes derivadas usando a palavra-chave override. Isto permite implementar o polimorfismo, onde a chamada do método depende do tipo real do objeto em tempo de execução, e não do tipo da variável.

Exemplo:

class Animal
{
    public virtual void Speak()
    {
        Console.WriteLine("O animal faz um som");
    }
}

class Dog : Animal
{
    public override void Speak()
    {
        Console.WriteLine("Au-au");
    }
}

Animal a = new Dog();
a.Speak(); // Vai imprimir "Au-au" graças ao método virtual

Sem virtual e override, a chamada ao método seria estática e não consideraria o tipo real do objeto em tempo de execução.