Junior
Kas yra virtualus metodas C#?
sobes.tech AI
Atsakymas iš AI
C# kalboje virtualus metodas yra metodas, deklaruotas su raktiniu žodžiu virtual pagrindinėje klasėje, kuris gali būti perrašytas išvestinėse klasėse naudojant raktinį žodį override. Tai leidžia įgyvendinti polimorfizmą, kai metodo iškvietimas priklauso nuo objekto tikrojo tipo vykdymo metu, o ne kintamojo tipo.
Pavyzdys:
class Animal
{
public virtual void Speak()
{
Console.WriteLine("Gyvūnas skleidžia garsą");
}
}
class Dog : Animal
{
public override void Speak()
{
Console.WriteLine("Au-au");
}
}
Animal a = new Dog();
a.Speak(); // Išves "Au-au" dėka virtualaus metodo
Be virtual ir override, metodo iškvietimas būtų statinis ir nebūtų atsižvelgiama į objekto tikrąjį tipą vykdymo metu.