|
Matematika va kompyuter ilmlari fakulteti amaliy matimatika kafedrasi dasturlash asoslari fanidan
|
bet | 2/11 | Sana | 17.05.2024 | Hajmi | 114,28 Kb. | | #239885 |
Bog'liq KURS IWI I.BOB . Polimorfizm.
Obyektga yo‘naltirilgan dasturlashda “Polimorfizm” tushunchasi inkapsulyatsiya va vorislikdan keyin uchinchi asosiy ustun hisoblanadi. Polimorfizm yunoncha so‘z bo‘lib, "ko‘p shaklli" degan ma’noni anglatadi va uning ikki jihati bor:
Kompilyatsiya vaqti polimorfizmi - ish vaqtida hosil bo‘lgan sinf obyektlarining metod parametrlari tayanch sinf obyekti sifatida ko‘rib chiqiladi. Ushbu polimorfizm paydo bo‘lganda, obyekt e’lon qilingan turi uning ish vaqti turiga o‘xshash bo‘lmaydi.
Ish vaqti polimorfizmi - tayanch sinflar virtual metodlarni belgilash, amalga oshirish hamda hosil bo‘lgan sinflar ularni bekor qilishi mumkin.
1.1. Virtual metodlar va ularning ustunligi
Agar metod tayanch sinfda virtual deb e'lon qilingan bo‘lsa, metod virtual deb ataladi. Virtual metod bir yoki bir nechta voris sinflarda bekor qilinishi mumkin. Shuning uchun har bir voris sinf virtual metodga ega bo‘lishi mumkin. Bunday holda, havola orqali kirish mumkin bo‘lgan obyekt turiga qarab chaqirilishi kerak bo‘lgan virtual metodni aniqlaydi va bu ish vaqtida amalga oshiriladi. Shuning uchun har xil turdagi obyektlarga murojaat qilganda, virtual metodning turli xil versiyalari bajariladi. Boshqacha qilib aytganda, bajariladigan virtual metodning varianti ushbu obyektga havola turiga qarab emas, balki obyekt turiga qarab tanlanadi. Shunday qilib, agar tayanch sinf virtual metodni o‘z ichiga olgan bo‘lsa va undan voris sinf olinsa, u holda tayanch sinfga murojaat qilish orqali har xil turdagi obyektlarga murojaat qilganda, ushbu virtual metodning turli xil versiyalari bajariladi.
Metod o‘z nomidan oldin virtual kalit so‘z yordamida tayanch sinfda virtual deb e'lon qilinadi. Voris sinfda virtual metod bekor qilinganda override modifikatori ishlatiladi va voris sinfda virtual metodni qayta aniqlash jarayoni metodni qayta aniqlash deb ataladi. Bekor qilinganda override metodining nomi, turi virtual metod bilan aynan bir xil bo‘lishi kerak. Bundan tashqari, virtual metodni static yoki abstrakt deb e'lon qilish mumkin emas.
Quyida virtual metodlar va ularning bekor qilinishini ko‘rsatadigan misol keltirilgan.
|
| |