Junior — Middle
Explicați conceptul de metode virtuale în limbajul C# și rolul lor în implementarea polimorfismului.
sobes.tech AI
Răspuns de la AI
În C#, metodele virtuale sunt metode declarate cu cuvântul cheie virtual, care pot fi suprascrise în clasele derivate folosind override. Aceasta este baza pentru implementarea polimorfismului — posibilitatea de a apela metode ale claselor derivate prin referințe la clasa de bază.
Când o metodă este declarată virtuală, apelul metodei este determinat în timpul execuției (legare dinamică), nu în timpul compilării. Acest lucru permite unui obiect să se comporte diferit în funcție de tipul său real.
Exemplu:
class Animal {
public virtual void Speak() {
Console.WriteLine("Animalul face un sunet");
}
}
class Dog : Animal {
public override void Speak() {
Console.WriteLine("Ham ham");
}
}
Animal a = new Dog();
a.Speak(); // Va afișa "Ham ham"
Aici, deși variabila a are tipul Animal, metoda suprascrisă Speak() a clasei Dog este apelată datorită metodei virtuale.