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() ыкмасы чакырылат, анткени ал виртуалдык ыкма болуп саналат.