Sobes.tech
Junior — Middle

C# dilində virtual metodların konseptini və onların polimorfizmin həyata keçirilməsindəki rolunu izah edin.

sobes.tech Süni İntellekt

AI-dan cavab

C# dilində virtual metodlar, virtual açar sözü ilə elan olunan və törəmə sinflərdə override istifadə edilərək yenidən təyin edilə bilən metodlardır. Bu, polimorfizmin həyata keçirilməsi üçün əsasdır — baz sinfə istinad vasitəsilə törəmə siniflərin metodlarını çağırmaq imkanı.

Bir metod virtual elan edildikdə, metod çağırışı icra zamanı (dinamik bağlama) müəyyən edilir, təkcə tərtib zamanı deyil. Bu, obyektin faktiki növündən asılı olaraq fərqli davranış göstərməsinə imkan verir.

Nümunə:

class Animal {
    public virtual void Speak() {
        Console.WriteLine("Heyvan səs çıxarır");
    }
}

class Dog : Animal {
    public override void Speak() {
        Console.WriteLine("Hav-hav");
    }
}

Animal a = new Dog();
a.Speak(); // "Hav-hav" çap edir

Burada, a dəyişəni Animal tipində olsa da, Dog sinifinin Speak() metodu çağrılır, çünki metod virtualdır.