PHP/Programmazione/OOP: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
→Classi Astratte: correzione errore |
→Classi Astratte: aggiunti br |
||
Riga 174:
===Classi Astratte===
Le classi astratte definiscono delle linee guida per i metodi che le classi che estendono dovranno seguire. Non definiscono il corpo del metodo, bensì il nome, la visibilità, i parametri, cioè quella che viene definita la signature.<br>
Il motivo è semplice, si pensi ad un programma sviluppato da più team, il team A definisce la classe madre ed i team B e C definiscono delle sottoclassi ridefinendo alcuni metodi. Se i due team non hanno una buona intercomunicabilità potrebbero ridefinire a piacere i metodi della superclasse cambiando i parametri o la visibilità dello stesso metodo, per evitare ciò esistono le classi astratte.<br>
Se una classe ha anche solo un metodo astratto è obbligatorio definirla come astratta, se una classe eredita da una classe astratta è obbligatorio ridefinirne tutti i metodi astratti. In PHP non è possibile dichiarare un metodo come astratto e definirlo nella stessa classe come permettono alcuni linguaggi oop.
Una classe o un metodo si dichiarano astratti con la keyword <code>abstract</code>:
|