Foydalanilgan adabiyotlar:
https://www.geeksforgeeks.org/understanding-encapsulation-inheritance-polymorphism-abstraction-in-oops/
https://www.nerd.vision/post/polymorphism-encapsulation-data-abstraction-and-inheritance-in-object-oriented-programming
https://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BD%D0%BE-%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5#%D0%9A%D0%BB%D0%B0%D1%81%D1%81%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F_%D0%BF%D0%BE%D0%B4%D0%B2%D0%B8%D0%B4%D0%BE%D0%B2_%D0%9E%D0%9E%D0%9F
26-Mavzu. Inkapsulyatsiya, merosxo'rlik, polimorfizm. Voqealarga asoslangan dasturlash modeli.
Reja:
Merosxo’rlik, Enkapsulyatsiya, Polimorfizm
Voqealarga asoslangan dasturlash
Hodisa modeli.
Merosning ta'rifi
Meroslik - bu "qayta foydalanish" ni qat'iyan qo'llab-quvvatlaydigan OOPning hal qiluvchi xususiyatlaridan biridir. Mavjud sinfning xususiyatlarini qayta ishlatib, yangi sinf yaratish deb qayta ishlatishni ta'riflash mumkin. Vorislikda, kelib chiqqan sinf tomonidan meros qilib olingan asosiy sinf mavjud. Sinf boshqa har qanday sinfni meros qilib olganda, asosiy sinf a'zolari (lar) hosil bo'lgan sinf a'zosi (lar) ga aylanadi.
Sinfni meros qilib olishning umumiy shakli quyidagicha:
class derived-class-name: access-specifier base-class-name {// sinfning tanasi};
Bu erda kirish spetsifikatori asosiy sinfdagi a'zolar (lar) ga olingan sinfga kirish rejimini (xususiy, ommaviy, himoyalangan) ta'minlaydi. Agar kirish ko'rsatgichi mavjud bo'lmasa, sukut bo'yicha u "xususiy" deb hisoblanadi. C ++ da, agar olingan sinf "struct" bo'lsa, u holda kirish spetsifikatori sukut bo'yicha "public" bo'ladi.
C ++ da merosga beshta shaklda erishish mumkin. Ular quyidagicha tasniflanishi mumkin:
Yagona meros (faqat bitta super sinf)
Ko'p meros (bir nechta superklasslar)
Ierarxik meros (bitta super sinf, ko'plab subklasslar)
Ko'p merosxo'rlik (olingan sinfdan olingan)
Java-da, sinf "extends" kalit so'zidan foydalangan holda boshqa sinfni meros qilib oladi. Java-da asosiy sinf super sinf, derivativ sinf esa subklass deb ataladi. Subklass "xususiy" deb e'lon qilingan asosiy sinf a'zolariga kira olmaydi. Java-da sinfni meros qilib olishning umumiy shakli quyidagicha.
class derived-class-name tag-class-name ni kengaytiradi {// sinfning tanasi};
Java ko'p merosxo'rlikning merosini qo'llab-quvvatlamaydi, ko'p darajali ierarxiyani qo'llab-quvvatlaydi. Java-da, ba'zida super-klass o'zining amalga oshirish tafsilotlarini yashirishni xohlashi mumkin va bu ma'lumotlarning bir qismini "shaxsiy" qiladi.
Java-da bo'lgani kabi, subklass superklassning shaxsiy a'zolariga kira olmaydi va agar subclass ushbu a'zolarga kirishni yoki ishga tushirishni xohlasa, u holda Java echimini taqdim etadi. Subklass "super" kalit so'zidan foydalanib, o'zining superklass a'zolariga murojaat qilishi mumkin. Yodingizda bo'lsin, siz faqat darhol superklass a'zolariga kirishingiz mumkin.
Do'stlaringiz bilan baham: |