Sobes.tech
Junior — Middle

Ներկայացրեք վիրտուալ մեթոդների կոնցեպցիան C# լեզվում և նրանց դերը պոլիմորֆիզմի իրականացման մեջ։

sobes.tech AI

Պատասխան AI-ից

C# լեզվում վիրտուալ մեթոդներն այն մեթոդներն են, որոնք հայտարարվում են virtual բանալի բառով և կարող են վերագրանցվել ժառանգական դասերում override օգտագործելով։ Սա հիմքն է պոլիմորֆիզմի իրականացման համար՝ հնարավորությունը կոչել ժառանգական դասերի մեթոդները բազային դասի հղումներով։

Երբ մեթոդը հայտարարվում է որպես վիրտուալ, նրա կանչը որոշվում է գործարկման ժամանակ (դինամիկ կապում), ոչ թե կոմպիլացիայի ժամանակ։ Սա թույլ է տալիս օբյեկտին տարբեր կերպ վարվել իր իրական տիպի կախված։

Օրինակ՝

class Animal {
    public virtual void Speak() {
        Console.WriteLine("Համայն կենդանի ձայն է հանում");
    }
}

class Dog : Animal {
    public override void Speak() {
        Console.WriteLine("Հա հա");
    }
}

Animal a = new Dog();
a.Speak(); // Տպում է "Հա հա"

Այստեղ, չնայած փոփոխական a-ն ունի Animal տիպ, կանչվում է Dog դասի վերագրած Speak() մեթոդը, շնորհիվ վիրտուալ մեթոդի։