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.