⊗ppOpIfInr 65 of 107 menu

Ndërfaqet në OOP në PHP

Siç e dini tashmë, klasat abstrakte përfaqësojnë një grup metodash për pasardhësit e tyre. Një pjesë e këtyre metodave mund të implementohet në vetë klasën, ndërsa një pjesë tjetër e metodave mund të deklarohet abstrakte dhe të kërkojnë implementim në klasat fëmijë.

Le të imagjinojmë një situatë ku klasa juaj abstrakte përfaqëson vetëm një grup metodash abstrakte publike, pa shtuar metoda me implementim.

Në fakt, klasa juaj prind përshkruan ndërfaqen e pasardhësve, domethënë grupin e metodave të tyre publike të detyrueshme për implementim.

Pse na duhet kjo: për të bërë më pak gabime gjatë programimit - duke përshkruar të gjitha metodat e nevojshme në klasën prind, ne mund të jemi të sigurt që të gjithë pasardhësit me të vërtetë i implementojnë ato.

Kur ndihmon kjo: le të themi që krijojmë klasën tone prind dhe disa pasardhës për të. Nëse pas një kohe, për shembull, pas një muaji, ne vendosim të krijojmë një pasardhës tjetër, me siguri do t'i kemi harruar detajet e kodit tonë dhe mund të harrojmë lehtësisht të shkruajmë implementimin e ndonjë metode në pasardhësin e ri. Megjithatë, vetë PHP nuk do të lejojë humbjen e metodës - dhe thjesht do të shfaqë një gabim.

E njëjta gjë vlen edhe për një programues tjetër, që punon me projektin tuaj. Le të themi që kodin e klasës prind e keni shkruar ju, dhe më pas kolegu juaj vendos të krijojë edhe një pasardhës tjetër. As kolegu tuaj nuk do të jetë në gjendje të humbasë disa metoda.

Megjithatë, ekziston një problem: në fakt ne e bëmë klasën tonë prind që të shkruajmë në të metoda abstrakte publike, por ne vetë ose kolegu ynë kemi mundësinë të rastësishme për të shtuar në këtë klasë një metodë jo publike ose jo abstrakte.

Le të themi që duam që fizikisht të ndalojmë bërjen e metodave të tjera në prind, përveç atyre abstrakte publike. Në PHP, për këtë, në vend të klasave abstrakte mund të përdoren ndërfaqet.

Ndërfaqet përfaqësojnë klasa, të cilat i kanë të gjitha metodat si publike dhe pa pasur implementim. Kodin e metodave duhet ta implementojnë klasat-pasardhëse të ndërfaqeve.

Ndërfaqet deklarohen njësoj si klasat e zakonshme, por duke përdorur fjalën kyçe interface në vend të fjalës class.

Për trashëgiminë nga ndërfaqet përdoret terminologji paksa ndryshe: thuhet se klasat nuk trashëgojnë nga ndërfaqet, por implementojnë ato. Prandaj, në vend të fjalës extends duhet përdorur fjala kyçe implements.

Nuk mund të krijohet objekt i një ndërfaqeje. Të gjitha metodat e ndërfaqes duhet të deklarohen si public dhe nuk duhet të kenë implementim. Një ndërfaqe mund të ketë vetëm metoda, jo veti. Gjithashtu nuk mund të bëhet një ndërfaqe dhe një klasë me emër të njëjtë.

Shqip
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ne përdorim cookie për funksionimin e sajtit, analizën dhe personalizimin. Përpunimi i të dhënave bëhet në përputhje me Politikën e Privatësisë.
prano të gjitha konfiguro refuzo