⊗ppOpIfInr 65 of 107 menu

PHPda OOP interfeyslari

Bilganingizdek, abstrakt sinflar o'z vorislari uchun metodlar to'plamini taqdim etadi. Ushbu metodlarning bir qismi sinfning o'zida amalga oshirilishi mumkin, qolgan qismi esa abstrakt metodlar sifatida e'lon qilinadi va voris sinflarda amalga oshirilishi talab qilinadi.

Tasavvur qiling, sizning abstrakt sinfingiz faqatgina abstrakt ochiq metodlar to'plamidan iborat bo'lib, amalga oshirilgan metodlarni qo'shmasdan.

Aslida sizning ota sinfingiz vorislarning interfeysini tavsiflaydi, ya'ni ularning amalga oshirilishi majburiy bo'lgan ochiq metodlar to'plamini.

Nima uchun bu kerak: dasturlashda kamroq xatolarga yo'l qo'ymaslik uchun - barcha kerakli metodlarni ota-sinfda tavsiflab, biz vorislarning ularni haqiqatdan ham amalga oshirishiga ishonch hosil qilamiz.

Bu qachon yordam beradi: faraz qilaylik, biz ota-sinfni va unga bir nechta voris sinflarni yaratdik. Agar keyin ma'lum vaqt o'tgach, masalan, bir oydan so'ng, biz yana bitta voris yaratmoqchi bo'lsak, kodimizning tafsilotlarini unta qo'yishimiz aniq va yangi vorisda biron bir metodni amalga oshirishni unutishimiz mumkin. Biroq PHPning o'zi metodni yo'qotishga imkon bermaydi - va shunchaki xatolik chiqaradi.

Xuddi shu narsa boshqa dasturchiga, sizning loyihangiz bilan ishlayotganiga ham tegishli. Faraz qilaylik, ota-sinf kodini siz yozgansiz, keyin esa hamkasbingiz yana bitta voris yaratishga qaror qildi. Hamkasbingiz ham bir nechta metodni yo'qotib qo'yolmaydi.

Biroq, muammo bor: aslida biz ota-sinfimizni faqatgina unda abstrakt ochiq metodlar yozish uchun yaratdik, lekin bizning o'zimiz yoki hamkasbimiz tasodifan bu sinfga ochiq bo'lmagan metod yoki abstrakt bo'lmagan metod qo'shish imkoniyatiga ega.

Faraz qilaylik, biz otada abstrakt ochiq metodlardan tashqari boshqa metodlar qilishni jismonan taqiqlashni xohlaymiz. PHPda buning uchun abstrakt sinflar o'rniga interfeyslar ishlatish mumkin.

Interfeyslar barcha metodlari ochiq va amalga oshirilishi bo'lmagan sinflardir. Metodlarning kodini interfeyslarning voris sinflari amalga oshirishi kerak.

Interfeyslar oddiy sinflar kabi e'lon qilinadi, lekin class so'zi o'rniga interface kalit so'zidan foydalaniladi.

Interfeyslardan meros olish uchun biroz boshqa terminologiya qo'llaniladi: deyiladiki, sinflar interfeyslardan meros olmaydi, balki ularni amalga oshiradi. Shunga mos ravishda extends so'zi o'rniga implements kalit so'zi ishlatiladi.

Interfeys ob'ektini yaratib bo'lmaydi. Interfeysning barcha metodlari public sifatida e'lon qilinishi kerak va amalga oshirilishi bo'lmasligi kerak. Interfeysda faqat metodlar bo'lishi mumkin, xususiyatlar emas. Shuningdek, bir xil nomdagi interfeys va sinfni yaratib bo'lmaydi.

Oʻzbek
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекTiếng Việt
Biz sayt ishlashi, tahlil qilish va shaxsiylashtirish uchun cookie-fayllardan foydalanamiz. Ma'lumotlarni qayta ishlash Maxfiylik siyosatiga muvofiq amalga oshiriladi.
hammasini qabul qilish sozlash rad etish