Sobes.tech
Junior — Middle

Explique o conceito de métodos virtuais na linguagem C# e o seu papel na implementação do polimorfismo.

sobes.tech IA

Resposta da IA

Em C#, os métodos virtuais são métodos declarados com a palavra-chave virtual, que podem ser sobrescritos em classes derivadas usando override. Isto é fundamental para a implementação do polimorfismo — a capacidade de chamar métodos de classes derivadas através de referências à classe base.

Quando um método é declarado virtual, a chamada do método é determinada em tempo de execução (ligação dinâmica), não em tempo de compilação. Isto permite que um objeto se comporte de forma diferente dependendo do seu tipo real.

Exemplo:

class Animal {
    public virtual void Speak() {
        Console.WriteLine("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"

Aqui, embora a variável a tenha o tipo Animal, o método sobrescrito Speak() da classe Dog é chamado graças ao método virtual.