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() մեթոդը, շնորհիվ վիրտուալ մեթոդի։