Junior — Middle
Мо метавонед намудҳои гуногуни полиморфизмро дар барномасозии объектӣ шарҳ диҳед?
sobes.tech AI
Ҷавоб аз AI
Дар оютои объектӣ, полиморфизм қобилияти объектҳои класи гуногун барои вокуниш ба паёмҳои (усулҳо) якхела, аммо бо роҳҳои гуногун мебошад. Типҳои асосии полиморфизм:
-
Полиморфизми компилятсионӣ (статикӣ) — дар вақти компилятсия муайян мешавад.
- Борбардории усулҳо (method overloading): чандусул бо номи якхела, аммо бо параметрҳои гуногун.
- Борбардории операторҳо (operator overloading) — дар C# маҳдуд аст, аммо барои баъзе операторҳо имконпазир аст.
-
Полиморфизми иҷроишӣ (динамикӣ) — дар вақти иҷро муайян мешавад.
- Пешбарории усулҳо (method overriding): зерсинф, иҷрои худро барои усули синфи асосӣ пешниҳод мекунад.
- Бо калидвожаҳои
virtual,overrideдар C# истифода мешавад.
Масалан, дар C# барои полиморфизми динамик:
class Animal {
public virtual void Speak() {
Console.WriteLine("Садои ҳайвон");
}
}
class Dog : Animal {
public override void Speak() {
Console.WriteLine("Хӯрдан");
}
}
Animal myDog = new Dog();
myDog.Speak(); // Натиҷа "Хӯрдан" хоҳад буд
Ин тариқ, полиморфизм имкон медиҳад, ки кодро чандир ва васеъшаванда нависед, ки дар он объектҳо метавонанд дар рафтор гуногун бошанд, бо вуҷуди он ки интерфейси умумӣ доранд.