Polimorfizm
Polimorfizm - umumiy muloqot tili. OOPda barcha
obyektlar bir -biri bilan
ular tushunadigan tilda muloqot qilishi muhi va agar har xil obyektlarda "Delete"
usuli bo'lsa, u aynan shunday qilishi va hamma joyda xuddi shunday yozilishi kerak.
Bir obyektda "Delete", ikkinchisida "Clear" bo'lishi mumkin emas.
Shu bilan birga, obyekt ichida metodlar turli yo'llar
bilan amalga oshirilishi
mumkin. Masalan, biror narsani o'chirish - bu ogohlantirish, keyin ma'lumotlar
bazasidagi elementni o'chirilgan deb belgilash va foydalanuvchini o'chirish
uning
xaridlarini bekor qilishni, pochta ro'yxatidan obunani bekor qilishni va sotib olish
tarixini arxivlashni bildiradi. Voqealar boshqacha, lekin dasturchi uchun bu muhim
emas. U faqat Delete () usuliga ega va unga ishonadi.
Polimorfizm - bu bir xil interfeysli obyektlardan obyektning turi va ichki
tuzilishi haqida ma'lumotsiz foydalanish xususiyatidir.
Polimorfizm - bu ikki yoki undan ortiq o'xshash,
lekin biroz boshqacha
muammolarni yechishda bir xil usul nomidan foydalanadigan mexanizm.
Polimorfizmning maqsadi - sinf uchun umumiy harakatlarni aniqlash uchun
bitta nomdan foydalanish. Umuman olganda, polimorfizm tushunchasi "bitta
interfeys, ko'p usullar" g'oyasidir.
Agar siz interfeysni
o'zgartirmasangiz, ob'ekt
ichidagi biror narsani
o'zgartirishingiz mumkin va
dastur normal ishlashda davom
etadi.
Polimorfizm - yunoncha so'z bo'lib, u turli shakllarga ega bo'lish qobiliyatini
bildiradi. Obyektga yo'naltirilgan paradigmada polimorfizm
operatsiyalarni ular
bajaradigan holatiga qarab har xil usulda qo'llashni nazarda tutadi. Polimorfizm har
xil ichki tuzilishga ega bo'lgan ob'ektlarga umumiy tashqi interfeysga ega bo'lishga
imkon beradi. Polimorfizm, ayniqsa, merosni amalga oshirishda samaralidir.
Misol. Keling, har biri findArea() usuli bilan ikkita sinfni - "Circle" va "Square"
ni ko'rib chiqaylik. Sinflardagi metodlarning nomi va maqsadi bir xil bo'lsa-da, ichki
amalga oshirish, ya'ni maydonni hisoblash tartibi har bir sinf uchun turlicha. Circle
sinfining ob'ekti findArea() usulini chaqirganda,
operatsiya Square sinfining
findArea () metodi bilan ziddiyatsiz aylana maydonini topadi.