11.1- shakl. Triangle sinfining sxematik ko`rinishi.
TwoDShape sinf Triangle sinf uchun asosiy bo`lishi bilan bir vaqtda o`zining butunlay mustaqil sinf a`rolariga ega. Agar sinf natijaviy sinf uchun asos bo'lib xizmat qilishi bu sinfdan foydalanish mumkin emas degani emas. Misol uchun, kodning keyingi qismi bunga to'liq ruxsat beradi.
TwoDShape shape = new TwoDShape();
shape.Width = 10;
shape.Height =20;
shape.ShowDim();
Albatta, TwoDShape sinfining ob'ekti TwoDShape sinfidan olingan har qanday sinf bilan bog'liq emas va ularga hech qanday a`zosiga kirish imkoni yo'q.
Quyida asosiy sinfga merosxo`r sinfni e'lon qilishning umumiy shakli keltirilgan.
class natijaviy_sinf_nomi : asosiy_sinf_nomi {
// sinf tanasi
}
Har qanday natijaviy sinf uchun faqat bitta asosiy sinfni belgilash mumkin. C# tilida bir natijaviv sinfida bir nechta asosiy sinflarni meros qilib olish nazarda tutilmaydi. (Shu nuqtai nazardan, C# C++dan farq qiladi, u yerda bir nechta asosiy sinflarni meros qilib olish mumkin. Ushbu holatni C++ kodini C# ga o'tkazishda hisobga olish kerak.) Shunga qaramay, merosning ierarxiyasini yaratish mumkin, unda natijaviy sinf boshqa natijaviy sinf uchun asos bo'lib qoladi. (Albatta, sinflarning hech biri bevosita yoki bilvosita o'zi uchun asosiy bo'lishi mumkin emas.) Lekin har qanday holatda ham, natijaviy sinf uning asosiy sinfining barcha a'zolarini shu jumladan o'zgaruvchi nusxalari, metodlari, xususiyatlar va indeksatorlarni meros qilib oladi.
Merosning asosiy afzalligi quyidagilardan iborat: ko'pgina ob'ektlar uchun umumiy atributlar aniqlangan asosiy sinf yaratilgach, u har qanday aniq natijaviy sinflarini yaratish uchun ishlatilishi mumkin. Har bir natijaviy sinfida o'z tasnifini aniq tuzilishi mumkin. Misol tariqasida, quyida TwoDShape sinfidan olingan va to'rtburchaklarni qamrab oladigan yana bir sinf keltirilgan.
Do'stlaringiz bilan baham: |