⊗ppOpIfInr 65 of 107 menu

Rozhrania v OOP v PHP

Ako už viete, abstraktné triedy predstavujú súbor metód pre svojich potomkov. Časť týchto metód môže byť implementovaná v samotnej triede, a časť metód môže byť deklarovaná ako abstraktné a vyžadovať implementáciu v odvodených triedach.

Predstavme si situáciu, keď vaša abstraktná trieda predstavuje len súbor abstraktných verejných metód, bez pridania metód s implementáciou.

Fakticky vaša nadradená trieda popisuje rozhranie potomkov, teda súbor ich verejných metód, povinných pre implementáciu.

Načo to potrebujeme: aby sme pri programovaní robili menej chýb - popísaním všetkých potrebných metód v nadradenej triede môžeme byť istí v tom, že všetci potomkovia ich naozaj implementujú.

Kedy to pomôže: povedzme, že vytvoríme našu nadradenú triedu a niekoľko potomkov k nej. Ak potom po určitom čase, napríklad, po mesiaci, sa rozhodneme vytvoriť ďalšieho potomka, určite už zabudneme detaily nášho kódu a celkom môžeme zabudnúť napísať implementáciu nejakej metódy v novom potomkovi. Avšak samotný PHP nedovolí stratu metódy - a jednoducho vypíše chybu.

To isté platí pre iného programátora, ktorý pracuje na vašom projekte. Nech kód nadradenej triedy písali ste vy, a potom sa váš kolega rozhodol vytvoriť ďalšieho potomka. Aj váš kolega nebude schopný stratiť pár metód.

Je tu však problém: fakticky sme urobili našu nadradenú triedu preto, aby sme písali v nej abstraktné verejné metódy, ale my sami alebo náš kolega máme možnosť náhodne pridať do tejto triedy nie verejnú metódu alebo nie abstraktnú.

Povedzme, že chceme fyzicky zakázať robiť v nadradenej triede iné metódy, okrem abstraktných verejných. V PHP na to namiesto abstraktných tried môžeme použiť rozhrania.

Rozhrania predstavujú triedy, ktorých všetky metódy sú verejné a nemajú implementáciu. Kód metód musia implementovať triedy-potomkovia rozhraní.

Rozhrania sa deklarujú rovnako ako obyčajné triedy, ale pomocou kľúčového slova interface namiesto slova class.

Pre dedenie od rozhraní sa používa trochu iná terminológia: hovorí sa, že triedy nededia od rozhraní, ale implementujú ich. Zodpovedajúco namiesto slova extends sa používa kľúčové slovo implements.

Nie je možné vytvoriť objekt rozhrania. Všetky metódy rozhrania musia byť deklarované ako public a nesmú mať implementáciu. Rozhranie môže mať len metódy, nie vlastnosti. Taktiež nie je možné vytvoriť rozhranie a triedu s rovnakým názvom.

Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť