Junior — Middle
Magyarázza el a virtuális módszerek fogalmát a C# nyelvben és szerepüket a polimorfizmus megvalósításában.
sobes.tech MI
Válasz az MI-től
C#-ban a virtuális metódusok olyan metódusok, amelyeket a virtual kulcsszóval lehet deklarálni, és amelyek felülírhatók az öröklődő osztályokban a override segítségével. Ez az alapja a polimorfizmus megvalósításának — az a képesség, hogy az alap osztályra mutató hivatkozásokon keresztül az öröklődő osztályok módszereit hívjuk.
Amikor egy metódust virtuálisnak deklarálunk, a metódushívás futásidőben (dinamikus kötés) dől el, nem fordítási időben. Ez lehetővé teszi, hogy egy objektum a valódi típusától függően másképp viselkedjen.
Példa:
class Animal {
public virtual void Speak() {
Console.WriteLine("Állat hangot ad ki");
}
}
class Dog : Animal {
public override void Speak() {
Console.WriteLine("Vau-vau");
}
}
Animal a = new Dog();
a.Speak(); // Kiírja: "Vau-vau"
Itt, bár az a változó típusát Animal-nak állítjuk be, a Dog osztályban felülírt Speak() metódus hívódik meg, köszönhetően a virtuális metódusnak.