Dart tiliga kirish O'zgaruvchilar va konstantalar Primitiv ma'lumotlar turlari
Download 374.15 Kb.
|
3-mustaqil ish
Interfeyslarni amalga oshirish
Dart merosi muhim cheklovga ega: biz bir vaqtning o'zida bir nechta sinflardan sinfni meros qilib olmaymiz, masalan, quyidagicha:
Ushbu muammoni hal qilish uchun Dart interfeyslarni amalga oshiradi. Ba'zi dasturlash tillarida bo'lgani kabi interfeys alohida ob'ekt emas (masalan, C# yoki Java-dagi interfeys turi), balki bir xil sinf ekanligini tushunish muhimdir. Ya'ni Dartdagi sinf bir vaqtning o'zida interfeys vazifasini bajaradi va boshqa sinf bu interfeysni amalga oshirishi mumkin. Interfeys bu interfeysni amalga oshiradigan sinflar amal qilishi kerak bo'lgan sintaktik shartnomani ifodalaydi. Ya'ni, agar interfeys klassi biron-bir maydon va usullarni aniqlasa, u holda ushbu interfeysni amalga oshiruvchi sinf ushbu maydon va usullarni ham belgilashi kerak. Interfeyslarni amalga oshirish uchun instruments operatori ishlatiladi:
Bunday holda, Employee klassi Person sinfining interfeysidan foydalanadi (Xodim Personni amalga oshiradi). Person sinfining interfeysidan foydalanish Employee klassi Person sinfida belgilangan barcha maydonlar va usullarni amalga oshirishi kerakligini anglatadi. Shuning uchun, Employee klassi nom maydonini va ko'rsatish usulini belgilashi kerak. Aslida, interfeys - bu sinfda ma'lum funksiyalarni o'z ichiga olishi kerak bo'lgan shartnoma (bu holda, nom maydoni va ko'rsatish usuli). Agar Employee klassi Person sinfidagi barcha maydonlar va usullarni aniqlamagan bo'lsa, biz xatoga yo'l qo'yamiz. Biroq, yuqoridagi misollardan ko'rish mumkinki, konstruktorni amalga oshirish uchun Employee klassi talab qilinmaydi va umuman konstruktorni aniqlamasligi mumkin.
Xuddi shunday, biz bir vaqtning o'zida bir nechta interfeyslarni amalga oshirishimiz mumkin:
Bunday holda, Employee klassi Person va Worker sinflarining interfeysini amalga oshiradi. Sinf merosi va interfeysni amalga oshirish Meros olishda olingan sinfdan asosiy sinfdagi bir xil maydonlar va usullarni belgilash talab qilinmaydi (mavhum usullardan tashqari). Agar asosiy sinf konstruktorni aniqlasa, hosila sinf o'zining konstruktorini belgilashi kerak, bu esa asosiy sinf konstruktorini chaqiradi. Olingan sinfda biz super kalit so'z yordamida asosiy sinfni amalga oshirishga murojaat qilishimiz mumkin. Bir nechta meros qo'llab-quvvatlanmaydi. Interfeysni amalga oshirishda olingan sinf interfeys sinfida belgilangan barcha maydonlar va usullarni belgilashi kerak. Agar asosiy sinfda konstruktor bo'lsa, hosila sinf o'z konstruktorini belgilashi shart EMAS. Olingan sinfda biz super kalit so'z yordamida amalga oshirilgan interfeysning usullariga kira olmaymiz. Bir nechta interfeys ilovalari qo'llab-quvvatlanadi. Download 374.15 Kb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling