Polimorfizm tushunchasi



Download 121,99 Kb.
Sana06.01.2022
Hajmi121,99 Kb.
#322539
Bog'liq
Leksiya #11

Polimorfizm tushunchasi

Hafta: 11

Ma’ruza: 11

Vorislikdagi muhim tushunchalar:

  • Asosiy sinfdagi private ma’lumot maydonlariga sinfdan tashqarida murojaat qilib bo’lmaydi. Shuning uchun ham voris sinflarda ulardan to’g’ridan-to’g’ri foydalanib bo’lmaydi. Ularga murojaatni asosiy sinfda public modifikatori ostida aniqlangan accessor/mutator funksiyalar orqali amalga oshirish mumkin bo’ladi.
  • Barcha is-a munosabatlar vorislik asosida modellashtirilmasligi ham mumkin. Misol uchun, kvadrat bu to’g’ri to’rtburchak, ammo Rectangle sinfi asosida Square sinfini aniqlamaslik zarur, chunki to’g’ri to’rburchakdan kvadrat uchun hech narsa olib bo’lmaydi. Bu holda Square sinfini GeometricObject sinfi asosida aniqlash zarur. A sinfi B sinfdan meros oladi, A sinfidan B sinfiga qaraganda ko’proq ma’lumotlar jamlanadi.

Vorislikdagi muhim tushunchalar:

  • Vorislik is-a munosabati asosida modellashtirilgan. Ammo bu ko’r-ko’rona bir sinfning funksiyalarini boshqa sinfga chaqirib ishlataverish degani emas. Misol uchun, bo’yi va eni kabi umumiy xususiyatlarga ega bo’lsa ham, Person(Shaxs) sinfidan Tree(Daraxt) sinfiga meros olishdan hech qanday ma’no yo’q. Voris sinf va Asos sinf is-a munosabatda bo’lishi lozim.
  • C++ da voris sinf bir necha asos sinflardan meros olish imkoni mavjud. Bunday imkoniyatga ko’p tomonlama vorislik deyiladi.

Polimorfizm

Polimorfizm superturdagi o’zgaruvchi subtur (voris tur) dagi ob’yektga uzatilishi ma’nosini anglatadi.

Ob’yektga yo’naltirilgan dasturlashning inkapsulyatsiya, vorislik va polimorfizm nomli uch ustunlari mavjud.

Dastlab, supertur va subtur atamalarini aniqlashtirib olish zarur. Sinf turni aniqlaydi. Voris sinf orqali aniqlangan tur subtur, asosiy sinf bilan aniqlangan tur supertur hisoblanadi. Shuning uchun, Circle GeometricObject ning subturi va GeometricObject Circle ning superturi hisoblanadi.

Polimorfizm

Voris sinf asosiy sinfning to’ldirilgan ko’rinishidir. Voris sinfning har bir ob’yekti asos sinfning ham ob’yekti hisoblanadi, ammo teskarisi bo’lishi mumkin emas. Misol uchun, barcha doiralar geometric ob’yekt, ammo barcha geometric ob’yektlar esa doira emas. Shuning uchun, Siz har doim voris sinf ob’yektlarini asosiy sinf turidagi paramtrga uzatishingiz mumkin.

Listing 15.9 PolymorphismDemo.cpp

Listing 15.9 PolymorphismDemo.cpp

displayGeometricObject(8-qator) funksiyasi GeometricObject turida parameter qabul qiladi. displayGeometricObject funksiaysiga GeometricObject, Circle va Rectangle ob’yektlarini argument sifatida berish mumkin (16, 19, 22 qatorlar). Voris sinf ob’yektlari asosiy sinfning ob’yektlari ham bo’lmoqda. Bunga polimorfizm deyiladi. (grekchadan “ko’p shakllar” (“many forms”)).

Virtual funksiyalar va dinamik bog’lanishlar

Vorislik zanjiri asosida funksiya bir necha sinflarda implementatsiya qilinishi mumkin. Virtual funksiya yordamida tizim dastur bajarilish vaqtida qaysi funksiyani chaqirishiga qaror qiladi.


Download 121,99 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish