Sobes.tech
Junior — Middle

Izskaidrojiet virtuālo metožu koncepciju C# valodā un to lomu polimorfisma īstenošanā.

sobes.tech AI

Atbilde no AI

C# valodā virtuālās metodes ir metodes, kas deklarētas ar atslēgvārdu virtual, un kuras var pārrakstīt ar override lietojot mantojo klases. Tas ir pamats polimorfismam — iespēja izsaukt mantojo klases metodes caur atsaucēm uz bāzes klasi.

Kad metode ir deklarēta kā virtuāla, tās izsaukšana tiek noteikta izpildes laikā (dinamiskā saistība), nevis kompilācijas laikā. Tas ļauj objektam uzvesties dažādi atkarībā no tā reālā tipa.

Piemērs:

class Animal {
    public virtual void Speak() {
        Console.WriteLine("Dzīvnieks izdala skaņu");
    }
}

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

Animal a = new Dog();
a.Speak(); // Izvadīs "Hau hau"

Šeit, lai gan mainīgais a ir tipa Animal, tiek izsaukta Dog klases pārrakstītā Speak() metode, pateicoties virtuālajai metodei.