Leg het concept van virtuele methoden in C# uit en hun rol bij de implementatie van polymorfisme.
sobes.tech AI
Antwoord van AI
In C# zijn virtuele methoden methods die gedeclareerd zijn met het sleutelwoord virtual, en die kunnen worden overschreven in afgeleide klassen met behulp van override. Dit vormt de basis voor het implementeren van polymorfisme — de mogelijkheid om methoden van afgeleide klassen aan te roepen via referenties naar de basisklasse.
Wanneer een methode als virtueel wordt gedeclareerd, wordt de methode-aanroep tijdens runtime (dynamische binding) bepaald, niet tijdens compilatie. Dit stelt een object in staat zich anders te gedragen afhankelijk van zijn werkelijke type.
Voorbeeld:
class Animal {
public virtual void Speak() {
Console.WriteLine("Dier maakt geluid");
}
}
class Dog : Animal {
public override void Speak() {
Console.WriteLine("Woef woef");
}
}
Animal a = new Dog();
a.Speak(); // Drukt "Woef woef" af
Hier, hoewel de variabele a van het type Animal is, wordt de overschreven methode Speak() van de klasse Dog aangeroepen dankzij de virtuele methode.