Torniamo insieme con le nostre fantastiche Mini Guide PHP e parliamo oggi di Overriding. Ormai la frasetta magica di LaraMind la conoscete vero? Niente Laravel se non si hanno basi PHP, mai! E non solo, niente Laravel se non si hanno basi di PHP e di conseguenza di programmazione ad Oggetti in PHP.

Overriding PHP

I metodi definiti in una classe padre, possono essere sovrascritti (overriding) in una classe figlia e, in questo caso, le funzioni ridefinite avranno precedenza su quelle della classe padre. Questo metodo è utile se si vuole utilizzare la funzionalità del genitore o semplicemente aggiungere ulteriori funzionalità nel metodo della sottoclasse.

Per ridefinire un metodo della superclasse in una sottoclasse, si crea semplicemente un metodo nella classe figlia con lo stesso nome del metodo della classe padre.

Grazie all’uso della keyword parent, è possibile condividere informazioni tra le classi, senza la necessità di riscrivere un metodo, nel caso in cui questo venga ridefinito.
Il costruttore e il distruttore possono essere ereditati nelle sottoclassi, così da evitare la riscrittura del codice. Infatti, di default, viene richiamato automaticamente quello della classe padre.

A volte, possono verificarsi situazioni in cui non si voglia attuare l’overriding o l’ereditarietà. Questo per evitare problemi di sicurezza, instabilità dell’applicazione, codice eccessivamente complesso e così via. In tali situazioni, è possibile impedire che i metodi all’interno della classe o addirittura l’intera classe siano estesi, utilizzando la parola chiave final prima della definizione del metodo e della classe.

Corsi PHP in aula e da remoto con LaraMind

LaraMind rappresenta l’eccellenza in Italia per quanto riguarda Laravel e Vue.js, la scuola però è vicina anche a chi comincia dalle basi, con una ricca offerta PHP e JavaScript capace di portare lo studente ad alti livelli, e dunque all’inizio dell’apprendimento dei due framework oggi protagonisti sul mercato PHP e JavaScript: Laravel e Vue.js.

Scopri l’offerta formativa LaraMind!