Sobes.tech
Junior — Middle

Explique el concepto de métodos virtuales en el lenguaje C# y su papel en la implementación del polimorfismo.

sobes.tech AI

Respuesta de la IA

En C#, los métodos virtuales son métodos declarados con la palabra clave virtual, que pueden ser sobrescritos en clases derivadas mediante override. Esto es fundamental para la implementación del polimorfismo, que permite llamar a métodos de clases derivadas a través de referencias a la clase base.

Cuando un método se declara como virtual, la llamada al método se determina en tiempo de ejecución (enlace dinámico), no en tiempo de compilación. Esto permite que un objeto se comporte de manera diferente dependiendo de su tipo real.

Ejemplo:

class Animal {
    public virtual void Speak() {
        Console.WriteLine("El animal hace un sonido");
    }
}

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

Animal a = new Dog();
a.Speak(); // Imprime "Guau-guau"

Aquí, aunque la variable a tiene tipo Animal, se llama al método sobrescrito Speak() de la clase Dog gracias al método virtual.