Junior — Middle
C# tilida virtual usullarning konseptini va ularning polimorfizmni amalga oshirishdagi rolini tushuntiring.
sobes.tech AI
AIdan javob
C# da virtual usullari, virtual kalit soʻzi bilan e'lon qilingan va meros olgan sinflarda override yordamida qayta yozilishi mumkin bo‘lgan metodlardir. Bu polimorfizmni amalga oshirish uchun asos bo‘lib, bazaviy sinfga havola orqali meros olgan sinflarning metodlarini chaqirish imkonini beradi.
Agar metod virtual e'lon qilingan bo‘lsa, metod chaqiruvi ish vaqtida (dinamik bog‘lanish) aniqlanadi, kompilatsiya vaqtida emas. Bu ob'ektning haqiqiy turiga qarab, turli xil xulq-atvor ko‘rsatishiga imkon beradi.
Misol:
class Animal {
public virtual void Speak() {
Console.WriteLine("Hayvon tovush chiqaradi");
}
}
class Dog : Animal {
public override void Speak() {
Console.WriteLine("Hav-hav");
}
}
Animal a = new Dog();
a.Speak(); // "Hav-hav" chiqaradi
Bu yerda, a o‘zgaruvchisi Animal turiga ega bo‘lsa-da, Dog sinfidagi Speak() metodining qayta yozilgan varianti chaqiriladi, chunki metod virtual hisoblanadi.