Cos'è Override in PHP?

L'override è un concetto di programmazione orientata agli oggetti che è simile a un concetto come classe, oggetto, incapsulamento, polimorfismo, sovraccarico ecc. In PHP. La sostituzione di funzioni e classi viene eseguita quando viene creato un metodo nella classe derivata che è uguale a quello del metodo nella classe base o nella classe genitore. Entrambi questi metodi hanno lo stesso nome e lo stesso numero di argomenti.

Come funziona l'override?

  • L'override è un concetto in cui la classe derivata della classe base esegue la stessa azione di quella di una classe base. Questa sostituzione può essere su metodi o classi. Se si tratta del metodo che sostituisce il nome del metodo, i parametri, si scopre che l'identificatore di accesso è uguale a quello del metodo della classe genitore. Laddove non è stata rilevata alcuna modifica nell'implementazione del metodo nella sottoclasse derivata dalla classe base, in quel momento si dice che il metodo della sottoclasse ha ignorato il metodo della classe base.
  • Supponiamo che esista una classe chiamata Person che ha proprietà e metodi dei propri dati. Questa è la persona principale o di classe base con un metodo chiamato speak (). Ora c'è un'altra classe chiamata Employee che estende la classe Person. Ora, questa classe Employee ha le proprie proprietà e metodi di dati e ha anche un metodo uguale a quello della classe parent eg.speak ().
  • Questo metodo speakks () è presente nella classe base e anche nella classe derivata.
  • Ora ciò che accade è quando la classe viene istanziata o quando viene creato l'oggetto, quale metodo speak () verrà eseguito, il che significa che parlare della classe base o parlare della classe derivata viene eseguita dipende dall'oggetto della classe è chiamato.
  • In altre parole, se viene creato un oggetto della classe Person, viene chiamato il metodo speak () della classe Person, che viene quindi eseguito. Ma se viene creato l'oggetto della classe Employee, verrà eseguito il metodo speak () della classe derivata, che sovrascrive la classe speak () della classe genitore.
  • Ed ecco come avviene la sostituzione con un esempio
  • Nell'esempio seguente, ci sono due classi, classe base e classe derivata. La classe derivata estende la classe base. Queste classi vengono avviate e vengono creati due oggetti $ obj1 e $ obj2. $ obj1 è un oggetto di BaseClass e $ obj2 è un oggetto di una classe derivata. Questi oggetti inoltre chiamano i metodi dichiarati nelle rispettive classi.
  • Qui noterai che la classe base e la classe derivata hanno lo stesso metodo chiamato ABC (). Quando esegui questo programma, noterai che il metodo ABC () ha ignorato il metodo della classe base ABC ().

Esempio di override del metodo

class BaseClass (
public function ABC() (
echo "
In the base class";
)
)
class DerivedClass extends BaseClass (
// override the method ABC() of base class
public function ABC() (
echo "
In the derived class";
)
)
$obj1 = new BaseClass;
$obj1->ABC();
$obj2 = new DerivedClass;
$obj2->ABC();

Produzione:

Sostituzione con modificatori di accesso

Esistono tre modificatori di accesso.

  1. pubblico: accessibile da qualsiasi parte del programma.
  2. privato: accessibile solo dalla classe genitore.
  3. protetto: accessibile dalla classe base e dalla classe derivata.

Come sappiamo, il metodo protetto è accessibile da una classe base e la classe derivata può essere reso pubblico nella sottoclasse ma non privato poiché privato è accessibile solo nella classe genitore. Inoltre, se un metodo di classe ha un identificatore di accesso come pubblico, il metodo di sostituzione nella classe derivata non può essere dichiarato privato e protetto

Esempio di override del metodo utilizzando i modificatori di accesso

class BaseClass (
private function ABC() (
echo "
In the base class Method : ABC";
)
protected function XYZ() (
echo "
In the base class Method : XYZ";
)
)
class DerivedClass extends BaseClass (
// overriding with public for wider accessibility
public function ABC() (
echo "
In the derived class Method : ABC";
)
// overriding method
// with more accessibility
public function XYZ() (
echo "
In the derived class Method : XYZ";
)
)
//$obj1 = new BaseClass;
//$obj1->ABC(); //throws fatal error
//$obj1->XYZ(); //throws fatal error
$obj2 = new DerivedClass;
$obj2->ABC();
$obj2->XYZ();

produzione:

Sostituzione con la parola chiave finale

La parola chiave finale viene utilizzata per classi e metodi. Metodi e classi, non variabili possono essere sovrascritte.

Sostituzione del metodo finale

Quando un metodo o una classe viene dichiarato come definitivo, non è possibile eseguire l'override su quel metodo o classe anche l'ereditarietà con la classe non è possibile.

Esempio di sostituzione del metodo utilizzando la parola chiave finale

class BaseClass (
// Final method – display
// this cannot be overridden in base class
final function display() (
echo "
In the Base class display function";
)
/// method - ABC
function ABC() (
echo "
In the Base cLass ABC function";
)
)
class DerivedClass extends BaseClass (
function ABC() (
echo "
In the Derived class ABC function";
)
)
$obj1 = new DerivedClass;
$obj1->display();
$obj1->ABC();

Produzione:

Sostituzione della classe finale

Una classe dichiarata come finale non può essere ereditata. Una classe finale ha inoltre il metodo finale insieme ad altri metodi. Ma poiché la classe stessa viene dichiarata finale, non è possibile dichiarare un metodo finale in una classe finale.

Esempio di sostituzione di classe utilizzando la parola chiave finale

// class declared as final cannot be overridden
final class BaseClass (
// method - ABC
function ABC() (
echo "
In the BaseClass Method ABC function";
)
// Final method - display
function display() (
echo "
In the BaseClass Method display function";
)
)
// here you cannot extend the base class
// as the base class is declared as final
$obj1 = new BaseClass;
$obj1->display();
$obj1->ABC();

Produzione:

Articoli consigliati

Questa è una guida per l'override in PHP. Qui discutiamo di cosa ha la precedenza e il funzionamento di PHP e diversi metodi insieme al codice di esempio. Puoi anche consultare i seguenti articoli per saperne di più -

  1. Domande chiave per l'intervista a PHP
  2. Vantaggi di PHP
  3. Carriera in PHP
  4. Comandi PHP
  5. Guida alla sostituzione in JavaScript
  6. Come funziona l'override in C ++?
  7. Sostituzione di OOP | Necessità di ignorare il metodo
  8. Modificatori di accesso in PHP
  9. Sostituzione in Java

Categoria: