2-mavzu: Xotirani ajratish va taqsimlash. Inkapsulyasiya. Meroshorlik. Polimorfizm. Virtual funksiyalar. Reja: 1. Merosxo‘rlikning umumiy xarakteristikasi 2. Konstruktorlar va destruktorlar 3. Virtual funksiyalar 4. Almashtirish printsipi 5. Polimorfizm 6. Abstrakt (tayanch) sinflar Merosxo‘rlikning umumiy xarakteristikasi: Merosxo‘rlik - bu obyektga yo'naltirilgan dasturlash paradigmasida bir sinfning (subsinf) o'zidan yuqori sinf (otsinfi)ning xususiyatlari va metodlarini meros qilib olishidir. Bu konsept yordamida bir sinfning ma'lum xususiyatlari yoki metodlarini boshqa sinflar tomonidan takrorlashning oldini olish va kodni qayta ishlatishni ta'minlash mumkin. Konstruktorlar va destruktorlar: Konstruktor - bu obyektni yaratishda avtomatik tarzda chaqiriladigan maxsus metoddir. U obyektning dastlabki holatini belgilash uchun ishlatiladi. Konstruktorlar sinfning nomi bilan bir xil bo'ladi va qiymatlar bilan obyektni tashkillashtiradi. Destruktor - obyekt xotiradan o'chirilganda chaqiriladigan metoddir. Bu metod obyektning xotira manbalarini tozalashga yordam beradi va obyektni yo'q qilishdan oldin bajariladigan ishlarni amalga oshiradi. Destruktorlar sinf nomiga "~" belgisini qo'yish bilan boshlanadi. Virtual funksiyalar: Virtual funksiyalar obyektga yo'naltirilgan dasturlashda polymorfizmni amalga oshirish uchun ishlatiladi. Virtual funksiyalar sinfda e'lon qilingan bo'lsa, ularni sub sinflarda o'zgartirish (override) mumkin. Agar funksiya virtual deb belgilangan bo'lsa, u polymorfizmni qo'llabquvvatlash imkonini beradi va chaqirish vaqtida to'g'ri versiya tanlanadi, ya'ni runtime (ishlash vaqtida). Almashtirish printsipi: Almashtirish printsipi (Overriding) - bu merosxo‘rlikda sub-sinfning ota-sinfda mavjud bo'lgan metodni o'zida o'zgartirish (ya'ni, qayta ta'riflash) jarayonidir. Bu printsipda sub-sinfdagi metod ota-sinfning metodini almashtiradi va yangi funktsiya yaratadi. Polimorfizm: Polimorfizm - bu obyektga yo'naltirilgan dasturlashning asosiy printsiplaridan biri bo'lib, bir xil nomli metodlarning turli xususiyatlarda yoki turli sinflarda ishlatilishiga imkon beradi. Bu, ayniqsa, virtual funksiyalar orqali amalga oshiriladi. Polimorfizm bir obyektni bir nechta turda ishlatish imkonini yaratadi va kodni yanada umumiylashtiradi. Abstrakt (tayanch) sinflar: Abstrakt sinflar - bu boshqa sinflar uchun asos bo'lib xizmat qiladigan sinflardir. Ular to'liq ishlov berilmagan metodlarga ega bo'lishi mumkin (ya'ni, metodlar faqat imzolanishi beriladi, lekin ularning implementatsiyasi yo'q). Abstrakt sinfning obyekti yaratilmaydi, ammo undan meros olib, boshqa sinflar uni to'liq bajarishi mumkin. Abstrakt sinf maqsadi - boshqa sinflarga umumiy strukturani taqdim etish.