Sobes.tech
Junior

Mis on virtuaalne meetod C#-s?

sobes.tech AI

Vastus AI-lt

C#-s virtuaalsed meetodid on meetodid, mis on deklareeritud võtmesõnaga virtual põhiklassis ning mida saab alamsklassides üle kirjutada võtmesõnaga override. See võimaldab rakendada polümorfismi, kus meetodi väljakutse sõltub objekti tegelikust tüübist jooksvalt, mitte muutujatüübist.

Näide:

class Animal
{
    public virtual void Speak()
    {
        Console.WriteLine("Loom teeb heli");
    }
}

class Dog : Animal
{
    public override void Speak()
    {
        Console.WriteLine("Hau hau");
    }
}

Animal a = new Dog();
a.Speak(); // Trükib välja "Hau hau" virtuaalse meetodi abil

Ilma virtual ja override oleks meetodi väljakutse statiline ning ei arvestaks objekti tegeliku tüübi kohta jooksvalt.