1-amaliy ish. Abstrakt sinflar yaratish va ishlatish. Oddiy darslarga qo'shimcha ravishda C# ning mavhum sinflari
Download 25.88 Kb.
|
- Bu sahifa navigatsiya:
- Yagona narsa shundaki, mavhum sinflarni belgilashda mavhum
1-amaliy ish.Abstrakt sinflar yaratish va ishlatish. Oddiy darslarga qo'shimcha ravishda C# ning mavhum sinflari mavjud . Ular nima uchun kerak? Sinflar odatda qandaydir ob'ekt yoki ob'ekt uchun qandaydir rejani ifodalaydi. Masalan, biz avtomobillarni ifodalash uchun Car sinfini yoki odamlarni ifodalash uchun Person sinfini ushbu sinflarga ushbu ob'ektlarni tavsiflovchi tegishli xususiyatlar, maydonlar va usullarni joylashtirish orqali belgilashimiz mumkin. Biroq, biz dasturlash tilidan foydalangan holda ifodalamoqchi bo'lgan ba'zi ob'ektlar o'ziga xos dasturga ega bo'lmasligi mumkin. Masalan, aslida bunday geometrik shakl yo'q. Doira, to'rtburchak, kvadrat bor, lekin oddiygina raqam yo'q. Biroq, aylana ham, to'rtburchak ham umumiy narsaga ega va ular raqamlardir. Va aniq amalga oshirishga ega bo'lmagan bunday ob'ektlarni tavsiflash uchun mavhum sinflar mo'ljallangan. Abstrakt sinf oddiy sinfga o'xshaydi. Bundan tashqari, o'zgaruvchilar, usullar, konstruktorlar, xususiyatlar bo'lishi mumkin. Yagona narsa shundaki, mavhum sinflarni belgilashda mavhum kalit so'z ishlatiladi . Masalan, transport vositasini ifodalovchi mavhum sinfni aniqlaymiz: abstract class Transport { public void Move() { Console.WriteLine("Транспортно средство движется"); } } Avtomobil ma'lum bir amalga oshirishga ega bo'lmagan ba'zi mavhumlikni ifodalaydi. Ya'ni, mashinalar va yuk mashinalari, samolyotlar, kemalar bor, kimdir kosmik kemaga minishni yaxshi ko'radi, lekin bunday transport vositasi yo'q. Biroq, barcha transport vositalarining umumiy jihati bor - ular harakatlana oladi. Va buning uchun sinfda harakatga taqlid qiluvchi Move usuli aniqlanadi. Ammo mavhum sinflar va oddiy sinflar o'rtasidagi asosiy farq shundaki, biz sinfning namunasini yaratish uchun mavhum sinf konstruktoridan foydalana olmaymiz . Masalan, quyidagicha:
Biroq, mavhum sinflar olingan sinflar meros qilib olishi va foydalanishi mumkin bo'lgan ba'zi umumiy funktsiyalarni tavsiflash uchun foydalidir:
Bunday holda, Transport klassi har xil turdagi transport vositalarini ifodalovchi uchta sinfni meros qilib oladi. Biroq, ularning bitta umumiy tomoni bor - ular yordamida navigatsiya qilish mumkin Move(). Yuqorida mavhum sinfning konstruktoridan foydalanib, ushbu sinfning namunasini yaratish mumkin emasligi haqida yozilgan edi. Biroq, bunday sinf konstruktorlarni ham belgilashi mumkin:
Bunday holda, konstruktor mavhum Transport sinfida aniqlanadi - parametrdan foydalanib, u avtomobil nomini saqlaydigan Name xususiyatining qiymatini o'rnatadi. Va bu holda, hosila sinflar o'zlarining konstruktorlarida ushbu konstruktorni chaqirishlari kerak. Download 25.88 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling