Absztrakt osztályok és interfészek php webfejlesztés blog

Absztrakt osztályok és interfészek php webfejlesztés blog

Réges-régen, amikor az absztrakt osztályok és interfészek php nem volt, meg lehetne tenni, mint ez:

Minden örökölt Animal osztály lesz kénytelen magukban foglalják a módszer szerint. kivéve, ha ez az úgynevezett történni, hogy összeomlik a forgatókönyvet. Természetesen ez a megközelítés elavult és számos hátránya van. Ilyen esetekben szükséges használni absztrakt osztályok vagy interfészek.







absztrakt osztályok

absztrakt objektumpéldányt nem lehet létrehozni, mert különben lehet egy kísérlet arra, hogy a jelen esetben egy absztrakt módszer, ami abszurd, mert nincs végrehajtás.

Most osztály, örökölt osztály Animal. Ez lesz szükség, hogy tartalmazza a módszer végrehajtását, vagy azt mondják, kell nyilvánítani elvont, különben hiba keletkezik még mielőtt a program futása.

/ * * Fatal error: Class Cat tartalmaz 1 elméleti módszer * és ezért ki kell nyilvánítani elvont vagy végrehajtja * a többi módszert (Animal :: mondják) * / class Cat kiterjed Animal name = $ nev; >>

Az absztrakt osztály lehet nyilvánítani, mint a hagyományos módszerek és mezők is örökölt. Annak ellenére, hogy egy absztrakt osztály nem lehet másolatokat, akkor van egy konstruktor, hogy lehet használni, hogy inicializálja a következő területeken utódai. Add a területen, miközben a becenevet az állat, kurtizánok neki vétel és a tervező az Animal osztályban.

Nézzük örökli a mi több absztrakt osztály Animal and Dog osztályban. leír egy kutya, és adjunk hozzá, és az osztályban Cat Say végrehajtási módszer. Megjegyezzük, hogy a konstruktőrök ezen osztályok hívja a kivitelező egy absztrakt osztály-őse.







Előfordulhat, hogy furcsa, hogy az örökösök az absztrakt osztály további korlátozások, de valójában ezek a korlátozások csak kezére játszanak. Létrehozása egy absztrakt osztály származtatott osztály például lehet teljesen biztos abban, hogy végre a meghatározott funkciót az absztrakt osztály, és most, hogy biztosan van az alkalmazott módszerek a például az osztály, akkor csak arról, hogy ő az örököse egy absztrakt osztály, hogy szükségünk van egy módszert ismertet. Ehhez, akkor használhatja a instanceof operátor. vagy adja meg a típusát a vett érv módszer.

interfészek

Ezzel szemben az absztrakt osztályok körülbelül interfészek gyakran mondják, hogy az órákon nem öröklik, és megvalósítja vagy megvalósítani. Ha egy osztályt, amely megvalósítja a felület, nem hajtották végre az összes módszer a felület, meg kell elvont.

Legyen a mi osztály Animal. amely nem tartalmaz olyan eljárást mondani. CanSay végrehajtja a felületet. Kutya és macska osztályok ugyanakkor továbbra is a kategóriájában Animal örökösök.

Most, annak igazolására, hogy az objektum lehet mondani, meg kell győződnie arról, hogy az osztály, amelyhez tartozik, adja CanSay felület. Megteheti ezt megadjuk a kívánt típusú érvként a módszer neve a felület, vagy használja a instanceof operátor.
Átvitele egy absztrakt módszer mondjuk egy osztály tette a kód is bővíthető. Most már végre CanSay felület és egyéb osztályok, amelyek nem osztály Animal örökösök. és a funkcionalitást, amely szükséges volt a tárgyak, amelyben működik, tud beszélni (megvalósított CanSay interface), nem fog változni.

Azt is meg kell jegyezni, egy másik interfész ellentétben absztrakt osztályok - egy osztály végre olyan felületek száma. Ehhez csak meg kell felsorolni neveket vesszővel elválasztva a kulcsszó után munkagépek. Öröklése azonos számú absztrakt osztályok nem. Ez annak a ténynek köszönhető, hogy az absztrakt osztályok tartalmazhat különböző megvalósítások nem absztrakt módszerek az azonos nevű, és az egymást ezen osztályok nem világos, hogy a végrehajtás az utódok örökölni. Az interfészen módszerek hiányoznak, és ha az osztály megvalósítja több interfész, amelyek elméleti módszerek az azonos nevű, ami ezeket a módszereket kell végrehajtani az osztályban közömbös.
Tágabb értelemben, a felület gyakran érteni egyszerűen funkcionális, elvált a kivitelezés, azaz hogy mit lehet valamit csinálni, és nem számít, hogyan csinál.

Ezen befejeztem beszéltem a magas absztrakciós. Mint mindig, sok sikert kívánok!

Olvassa a szabadidő ...!
ATP