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>: