Corsi on-line

Specializzazione dei metodi nelle sottoclassi in PHP

Quando si sviluppano applicazioni basate su PHP che sfruttano il meccanismo dell’ereditarietà, cioè dell’estensione della classe base da parte delle sottoclassi, è molto frequente creare codici sorgente in cui si fa riferimento a variabili, funzioni a altri costrutti precedentemente definiti nelle superclassi; ciò accade in particolare quando le classi secondarie rappresentano degli strumenti per la specializzazione dei metodi delle classi principali.

In un contesto come quello descritto, la keyword parent può essere utilizzata in luogo del nome reale della superclasse, in pratica parent costituisce un riferimento specifico al nome della classe principale così come è stato indicato al momento della definizione della sottoclasse, quest’ultimo potrà quindi essere chiamato una sola volta quando verrà passato come argomento alla dichiarazione effettuata tramite “extends“.

Un semplice esempio riguardante l’utilizzo di parent nell’ereditarietà potrebbe essere il seguente:

<?php
# definizione della superclasse
class ClassePrincipale {
function metodo() {
echo "Metodo della classa principale.<br />\n";
}
}
# definizione della classe derivata
class ClasseSecondaria extends ClassePrincipale {
function metodo() {
echo "Implementazione del metodo nella classe derivata.<br />\n";
# riferimento alla classe base
parent::metodo();
}
}
# generazione dell'oggetto di classe
$obj = new ClasseSecondaria;
# chiamata al metodo
$obj->metodo();
?>

L’esecuzione dell’applicazione proposta dovrebbe dare luogo ad un output come il seguente:

Implementazione del metodo nella classe derivata.
Metodo della classa principale.

Come si potrà notare, la chiamata al metodo rappresenta in realtà una chiamata al metodo della sottoclasse e non a quello della classe principale, ciò risulta evidente dal fatto che l’istanza rappresenta l’inizializzazione di un oggetto delle classe secondaria; ma grazie a parent, utilizzato all’interno della sottoclasse, verrà chiamato ed eseguito anche il metodo della superclasse.

Post correlati
I più letti del mese
Tematiche