Sto cercando di migliorare la mia conoscenza di OOP in PHP e ho ricercato classi e interfacce astratte.Real World Esempi di funzioni OOP avanzate per PHP
Quello che ho imparato
- Sono entrambe le classi che non possono essere se stessi istanziati ma può olny essere estesi (implementato nel caso di interfacce)
- astratte classi forniscono metodi e proprietà per le altre classi che li estendono.
- Se una classe utilizza un metodo astratto, la classe stessa deve anche essere astratta.
- Se un metodo astratto viene definito all'interno di una classe astratta, tutte le classi figlie devono definire i dettagli di tale metodo. I metodi non definiti come astratti possono essere utilizzati allo stesso modo dei metodi normali.
- Le interfacce definiscono quali metodi deve avere una classe che lo implementa. La funzionalità dei metodi non è definita nell'interfaccia, l'interfaccia offre solo un elenco di metodi che devono essere inclusi nella classe figlio.
- Un'interfaccia non definisce alcuna proprietà.
- Le classi possono implementare il maggior numero di interfacce come vogliono ma devono definire un metodo per ogni una delle interfacce attuano
Penso che copre le nozioni di base. Per favore sentiti libero di aggiungerlo se pensi che ci sia qualcosa che mi è sfuggito.
Quello che mi piacerebbe sapere è se ci sono esempi reali di implementazione di queste classi, in particolare la classe di interfaccia. Qualcuno sa di tutte le applicazioni open source che le usano che posso sfogliare per comprenderle meglio e vedere dove e quando vengono utilizzate in modo efficace? Ho trovato esempi di libri che usano animali che non riescono a dimostrare l'importanza di queste classi.
Inoltre, ZF2 work in progress wiki: http://framework.zend.com/wiki/display/ZFDEV2 – joksnet
@Gordon: guarda ad esempio a quello: http://www.php.net/manual/en /class.splheap.php – vartec
@ Gordon, ha modificato la risposta – vartec