67
8 bob. SINFLARDA VORISLIK
8.1. Sinflarda vorislik. Sodda vorislik
Vorislik g‘oyasi obyektlar xulq-atvorini modifikatsiyalash muammosini hal
qiladi hamda OMD ga favqulotda kuch va moslashuvchanlik baxsh etadi. Vorislik,
deyarli hech qanday cheklanishlarsiz, siz yoki boshqa biron kimsa tomonidan
yaratilgan sinflarni izchil qurish va kengaytirish imkonini beradi. Eng oddiy
sinflardan boshlab, murakkablik jihatidan asta-sekin ortib boradigan, ammo
sozlanishi ham oson, ichki tuzilishi ham oddiy bo‘lgan hosila sinflarni yaratish
mumkin.
Ayniqsa yirik dasturiy loyihalarni ishlab chiqishda vorislik tamoyilini hayotga
izchil tatbiq etish pasayib boruvchi tuzilmaviy dasturlash (umumiydan juz’iyga)
texnikasi bilan yaxshi moslashadi hamda ko‘p o‘rinda bunday yondoshuvni
rag‘batlantiradi. Bunda dastur kodining murakkabligi ancha kamayadi. Hosila sinf
(avlod) o‘z bazaviy sinfining (otasining) hamda sinflar tabaqalanishidagi o‘zining
barcha ajdodlarining hamma xususiyatlari, metodlari va voqealarini voris qilib oladi.
Vorislik paytida bazaviy sinf yangi atributlar va operatsiyalar hisobiga yanada
o‘sadi. Hosila sinfda odatda yangi ma’lumotlar a’zolari, xususiyatlar va metodlar
paydo bo‘ladi. Obyektlar bilan ishlashda dasturchi odatda aniq masalani hal qilish
uchun eng to‘g‘ri keladigan sinfni tanlaydi, hamda undan bitta yoki bir nechta voris
avlod yaratadiki, ular o‘z otalarida mavjud imkoniyatlardan ko‘proq imkoniyatga ega
bo‘ladilar. Do‘stona funksiyalar hosila sinfga barcha tashqi sinflar ma’lumotlari
a’zolariga kirish huquqini olish imkonini beradilar.
Bundan tashqari, voris qilib olinayotgan metodlardan, ularning bazaviy sinfdagi
ishi avlodga to‘g‘ri kelmasa, hosila sinf ortiqcha yuklanishi mumkin. OMD da
ortiqcha yuklanishdan foydalanish har qanaqasiga rag‘batlantiriladi, garchi bu
so‘zning to‘g‘ri ma’nosidan kelib chiqqanda, odatda ortiqcha yuklanishlar tavsiya
qilinmaydi. Agar metod bittadan ortiq bir nomdagi funksiya bilan assotsiyatsiyalansa,
u ortiqcha yuklangan deb aytiladi. E’tibor bering, sinflar tabaqalanishida ortiqcha
yuklatilgan metodlarni chaqirib olib mexanizmi qayta aniqlangan funksiyalarni
chaqirib olishdan mutlaqo farq qiladi. Ortiqcha yuklanish va qayta aniqlanish – bu
68
turli tushunchalar. Virtual metodlar bazaviy sinf funksiyalarini qayta aniqlash uchun
qo‘llanadi.
Vorislik kontsepttsiyasini soat haqidagi misolga tadbiq qilish uchun faraz
qilaylikki, vorislik tamoyiliga amal qilgan «Casio» firmasi soatning yangi modelini
chiqarishga qaror qildi. Aytaylik, bu model, tugmachalardan biri ikki marta bosilsa,
vaqtni ovozda ayta oladi. Gapiradigan soatlar modeli (OMD atamalari bo‘yicha,
yangi sinf) ni yangidan yaratish o‘rniga muhandislar ishni uning prototipidan
boshlaydilar (OMD atamalari bo‘yicha, bazaviy sinfning yangi avlodini yaratadilar).
Hosila obyekt otasining barcha atributlari va funktsionalligini voris qilib oladi.
Sintezlangan ovozda aytilgan sonlar avlodning yangi ma’lumotlar a’zolari bo‘lib
qoladi, tugmachalarning ob’ktli metodlari esa, ularning qo‘shimcha funktsionalligini
ishga tushirish uchun, ortiqcha yuklatilgan bo‘lishi kerak. Tugmachalarning ikki
marta bosilish hodisasiga yangi usul javob berib, u joriy vaqtga mos keladigan sonlar
ketma-ketligi (yangi ma’lumotlar a’zolari) ning talaffuz qilinishida namoyon bo‘ladi.
Yuqorida aytilganlarning hammasi gapiradigan soatlarning dasturiy amalga
oshirilishiga to‘liq taalluqli.
Dostları ilə paylaş: