Ereditarietà in PHP

Ereditarietà in PHP
Le tre caratteristiche principali della programmazione orientata agli oggetti includono incapsulamento, ereditarietà e polimorfismo. Durante la programmazione, potrebbe essere necessario utilizzare un determinato codice più volte e l'utilizzo dell'eredità riduce manualmente la ripetizione del codice di riscrittura riutilizzando il codice. L'eredità è un metodo per creare una nuova classe ereditando una classe base. L'oggetto della nuova classe sarà in grado di accedere a tutti i membri della classe della nuova classe, nonché della classe base, attraverso l'eredità. In questo modo, lo stesso codice può essere riutilizzato molte volte scrivendolo solo una volta. PHP usa il estendere Parola chiave per l'eredità. Questo tutorial mostra come implementare l'eredità usando lo script PHP.

Sintassi dell'eredità

La sintassi dell'eredità è mostrata di seguito.

Classe Newclass estende Oldclass

..

Qui, Newclass è chiamato il bambino, derivato, O subclasse; E Oldclass è chiamato il genitore, base, O superclasse. La parte successiva di questo tutorial mostra alcuni esempi di utilizzo delle eredità in PHP.

Esempio 1: semplice uso dell'eredità

Il seguente script mostra un semplice uso dell'eredità nello script PHP. Nella sceneggiatura, Dipendente è la classe genitore che contiene due variabili di classe e il setData () Il metodo viene utilizzato per inizializzare le variabili di classe. IL Esecutivo La classe è la classe figlio ereditata da Dipendente classe usando il estendere parola chiave. Contiene una variabile di classe e un metodo chiamato Mostra dettagli() Per stampare le variabili di classe delle classi genitore e figlio. Dopo aver creato l'oggetto della classe figlio, i metodi delle classi genitore e figlio saranno chiamati usando l'oggetto della classe figlio.

// classe genitore
dipendente di classe
// Variabili della classe principale
pubblico $ nome;
Dipartimento $ Public $;
// Inizializza i dati di base
funzione pubblica setData ()

$ this-> name = "John Abraham";
$ this-> dipartimento = "hr";


// Classe per bambini
La classe Executive estende i dipendenti
// variabile di classe figlio
public $ designation = "marketing executive";
// stampa i dettagli dei dipendenti
funzione pubblica showdetails ()

if ($ this-> name != "" && $ this-> designazione != "" && $ this-> dipartimento != "")

eco "Dettagli dei dipendenti:
";
Echo "Nome:".$ this-> Nome."
";
Echo "Designazione:".$ this-> designazione."
";
Echo "Dipartimento:".$ this-> dipartimento."
";



// Crea oggetto la classe figlio
$ objemp = new Executive ();
// chiama il metodo della classe genitore
$ objemp-> setData ();
// Chiama il metodo della classe figlio
$ objemp-> showdetails ();
?>

Produzione

Il seguente output apparirà dopo aver eseguito lo script. Qui, il nome del dipendente e i valori del dipartimento sono stampati dalla classe madre e il valore della designazione dei dipendenti viene stampato dalla classe figlio.

Esempio 2: eredità con il metodo prevalente

Il metodo prevalente si verifica quando un metodo con lo stesso nome viene dichiarato sia nella classe genitore che nella classe figlio. Il seguente script mostra l'eredità con il metodo prevalente usando lo script PHP. Qui, il Mostra dettagli() Il metodo è dichiarato sia nella classe genitore che nella classe figlio. L'oggetto della classe genitore accederà al file Mostra dettagli() metodo della classe genitore e l'oggetto della classe figlio accederanno al Mostra dettagli() Metodo della classe figlio.

// classe genitore
dipendente di classe
// Variabili della classe principale
pubblico $ nome;
Dipartimento $ Public $;
// Inizializza i dati
funzione __construct ()

$ this-> name = "Janifer Lopez";
$ this-> dipartimento = "vendite";

// stampa i dettagli dei dipendenti
funzione pubblica showdetails ()

eco "Dettagli dei dipendenti: [dalla classe madre]
";
Echo "Nome:".$ this-> Nome."
";
Echo "Dipartimento:".$ this-> dipartimento."

";


// Classe per bambini
La classe Executive estende i dipendenti
// variabile di classe figlio
public $ designation = "Sales Executive";
// stampa i dettagli dei dipendenti
funzione pubblica showdetails ()

eco "Dettagli dei dipendenti: [Dalla classe figlio]
";
Echo "Nome:".$ this-> Nome."
";
Echo "Designazione:".$ this-> designazione."
";
Echo "Dipartimento:".$ this-> dipartimento."
";


// Crea oggetto Classe Parente
$ objemployee = new Employee ();
// chiama il metodo della classe genitore
$ objemployee-> showdetails ();
// Crea oggetto di classe figlio
$ objexecutive = new Executive ();
// Chiama il metodo della classe figlio
$ objexecutive-> showdetails ();
?>

Produzione

Il seguente output apparirà dopo aver eseguito lo script. Quando il Mostra dettagli() Il metodo viene chiamato con l'oggetto della classe genitore, mostrerà l'output dalla classe genitore. Quando il Mostra dettagli() Il metodo viene chiamato con l'oggetto della classe figlio, mostrerà l'output della classe figlio.

Esempio 3: chiama il costruttore genitore all'interno del costruttore figlio

Quando sia il genitore che la classe figlio contengono un metodo del costruttore, la classe figlio può chiamare il costruttore della classe genitore. Il seguente script mostra come chiamare il costruttore della classe genitore dal costruttore della classe figlio. IL genitore :: __ costrut () L'istruzione viene utilizzata per chiamare il costruttore genitore.

// classe genitore
dipendente di classe
// Variabili della classe principale
pubblico $ nome;
Dipartimento $ Public $;
// Inizializza i dati
funzione __construct ($ name, $ dipt)

$ this-> name = $ name;
$ this-> dipartimento = $ dipt;


// Classe per bambini
La classe Executive estende i dipendenti
// Variabili di classe figlio
Public $ Designation;
Stipendio pubblico $;
// Inizializza i dati
funzione __construct ($ nome, $ dipartimento, $ designazione, $ stipendio)

// Chiama il costruttore di classe genitore
genitore :: __construct ($ nome, $ dipartimenti);
$ this-> designazione = $ designazione;
$ this-> stipendio = $ stipendio;

// stampa i dettagli dei dipendenti
funzione pubblica showdetails ()

eco "Dettagli dei dipendenti:
";
Echo "Nome:".$ this-> Nome."
";
Echo "Designazione:".$ this-> designazione."
";
Echo "Dipartimento:".$ this-> dipartimento."
";
Echo "Stipendio: $".$ this-> stipendio."
";


// Crea oggetto di classe figlio
$ objexecutive = new Executive ("Jafar Iqbal", "Marketing", "Marketing Executive", 4500);
// Chiama il metodo della classe figlio
$ objexecutive-> showdetails ();
?>

Produzione

Il seguente output apparirà dopo aver eseguito lo script. Qui, il nome e il dipartimento dei dipendenti sono inizializzati dal costruttore genitore e la designazione e lo stipendio dei dipendenti sono inizializzati dal costruttore figlio.

Esempio 4: implementare l'eredità gerarchica

Il seguente script mostra come implementare l'eredità gerarchica in PHP. Qui, Classe2 è creato ereditando Classe1, E Classe3 è creato ereditando Classe2. In questo esempio, tre metodi sono definiti in tre classi. IL Classe3 L'oggetto viene creato per chiamare i metodi di tutte le classi.

// classe genitore
class class1
funzione showmethod1 ()

echo "È la classe genitore
";


// Classe per bambini
class class2 estende class1
funzione showmethod2 ()

echo "È la classe figlio
";


// Classe di Grand Child
Class Class3 estende Class2
funzione showmethod3 ()

Echo "È la classe Grand Child";


$ object = new Class3 ();
$ object-> showMethod1 ();
$ object-> showMethod2 ();
$ object-> showMethod3 ();
?>

Produzione

Il seguente output apparirà dopo aver eseguito lo script. Qui, la prima riga di testo è apparsa da Classe1, La seconda riga di testo è apparsa da Classe2, e la terza riga di testo è apparsa da Classe3.

Tutorial video

Conclusione

Questo tutorial ti ha mostrato diversi tipi di eredità usando lo script PHP. Dopo aver letto questo articolo, dovresti capire il concetto di eredità e i suoi usi di base nello script PHP.