Dziedziczenie w PHP

Dziedziczenie w PHP
Trzy główne cechy programowania obiektowego obejmują enkapsulacja, dziedziczenie i polimorfizm. Podczas programowania może być konieczne użycie określonego kodu wielokrotnie, a za pomocą dziedziczenia zmniejsza powtarzanie kodu przepisywania ręcznie, ponownie wykorzystując kod. Dziedzictwo jest metodą tworzenia nowej klasy poprzez odziedziczenie klasy podstawowej. Obiekt nowej klasy będzie mógł uzyskać dostęp do wszystkich członków klasy nowej klasy, a także klasy podstawowej, poprzez dziedzictwo. W ten sposób ten sam kod można ponownie użyć wielokrotnie, pisząc go tylko raz. PHP używa rozszerzyć Słowo kluczowe do dziedziczenia. Ten samouczek pokazuje, jak zaimplementować dziedzictwo za pomocą skryptu PHP.

Składnia dziedziczenia

Składnia dziedziczenia pokazano poniżej.

Klasa NewClass rozszerza Oldclass


Tutaj, NewClass nazywa się dziecko, pochodny, Lub podklasa; I Oldclass nazywa się rodzic, baza, Lub Superklasa. Kolejna część tego samouczka pokazuje kilka przykładów stosowania spadków w PHP.

Przykład 1: Proste użycie dziedziczenia

Poniższy skrypt pokazuje proste użycie dziedziczenia w skrypcie PHP. W skrypcie, Pracownik jest klasą nadrzędną, która zawiera dwie zmienne klasowe i setData () Metoda jest stosowana do inicjowania zmiennych klasowych. Wykonawczy klasa to klasa dzieci odziedziczona po Pracownik klasa za pomocą rozszerzyć Słowo kluczowe. Zawiera jedną zmienną klasową i metodę nazwaną Pokaż szczegóły() Aby wydrukować zmienne klasowe klas rodziców i dzieci. Po utworzeniu obiektu klasy dziecięcej metody klas rodziców i dzieci zostaną wywołane za pomocą obiektu klasy dzieci.

// Klasa rodziców
Pracownik klasy
// Zmienne klasy nadrzędne
Nazwa publiczna $;
Departament publiczny;
// Zainicjuj podstawowe dane
funkcja publiczna setData ()

$ this-> name = "John Abraham";
$ this-> dział = "hr";


// klasa dzieci
Klasa Executive rozszerza pracownika
// Zmienna klasy dzieci
public $ określenie = „Marketing Executive”;
// Drukuj szczegóły pracownika
funkcja publiczna showDetails ()

if ($ this-> nazwa != "" && $ this-> oznaczenie != "" && $ this-> dział != "")

Echo "Szczegóły pracownika:
";
Echo „Nazwa:”.$ this-> nazwa."
";
Echo „Oznaczenie:”.$ to-> oznaczenie."
";
Echo „Department:”.$ this-> dział."
";



// Utwórz obiekt klasa dziecięca
$ objemp = new Executive ();
// Zadzwoń metoda klasy nadrzędnej
$ objemp-> setData ();
// Zadzwoń do klasy dzieci
$ objemp-> showDetails ();
?>

Wyjście

Następujące dane wyjściowe pojawią się po uruchomieniu skryptu. Tutaj nazwa pracownika i wartości działu są drukowane z klasy nadrzędnej, a wartość oznaczenia pracownika jest drukowana z klasy dzieci.

Przykład 2: Dziedziczenie z zastępowaniem metody

Nadrzędne metody występuje, gdy metoda o tej samej nazwie jest zadeklarowana zarówno w klasie rodzica, jak i dla dzieci. Poniższy skrypt pokazuje dziedzictwo za pomocą metody za pomocą skryptu PHP. Tutaj Pokaż szczegóły() Metoda jest zadeklarowana zarówno w klasie nadrzędnej, jak i w klasie dzieci. Obiekt klasy nadrzędnej uzyska dostęp do Pokaż szczegóły() metoda klasy nadrzędnej, a przedmiot klasy dziecięcej uzyska dostęp do Pokaż szczegóły() Metoda klasy dziecięcej.

// Klasa rodziców
Pracownik klasy
// Zmienne klasy nadrzędne
Nazwa publiczna $;
Departament publiczny;
// Zainicjuj dane
funkcja __Construct ()

$ this-> name = "Janifer Lopez";
$ this-> dział = "sales";

// Drukuj szczegóły pracownika
funkcja publiczna showDetails ()

Echo "Szczegóły pracownika: [z klasy nadrzędnej]
";
Echo „Nazwa:”.$ this-> nazwa."
";
Echo „Department:”.$ this-> dział."

";


// klasa dzieci
Klasa Executive rozszerza pracownika
// Zmienna klasy dzieci
public $ określenie = „Sales Executive”;
// Drukuj szczegóły pracownika
funkcja publiczna showDetails ()

Echo "Szczegóły pracownika: [z klasy dzieci]
";
Echo „Nazwa:”.$ this-> nazwa."
";
Echo „Oznaczenie:”.$ to-> oznaczenie."
";
Echo „Department:”.$ this-> dział."
";


// Utwórz obiekt klasy nadrzędnej
$ obJEmployee = nowy pracownik ();
// Zadzwoń metoda klasy nadrzędnej
$ obJEMPLEYE-> showDetails ();
// Utwórz obiekt klasy dzieci
$ objexeCive = new Executive ();
// Zadzwoń do klasy dzieci
$ objexeCive-> showDetails ();
?>

Wyjście

Następujące dane wyjściowe pojawią się po uruchomieniu skryptu. Kiedy Pokaż szczegóły() Metoda jest wywoływana z obiektem klasy nadrzędnej, wyświetli dane wyjściowe z klasy nadrzędnej. Kiedy Pokaż szczegóły() Metoda jest wywoływana z obiektem klasy dziecięcej, wyświetli wynik z klasy dzieci.

Przykład 3: wywołanie konstruktora nadrzędnego Inside Constructor

Gdy zarówno rodzic, jak i klasa dziecięca zawierają metodę konstruktora, klasa dziecięca może wywołać konstruktor klasy nadrzędnej. Poniższy skrypt pokazuje, jak wywołać konstruktor klasy nadrzędnej z konstruktora klasy dziecka. rodzic :: __ Construct () Instrukcja służy do wywołania konstruktora nadrzędnego.

// Klasa rodziców
Pracownik klasy
// Zmienne klasy nadrzędne
Nazwa publiczna $;
Departament publiczny;
// Zainicjuj dane
funkcja __Construct ($ name, $ Dept)

$ this-> name = $ name;
$ this-> dział = $ Dept;


// klasa dzieci
Klasa Executive rozszerza pracownika
// Zmienne klasy dzieci
Oznaczenie publiczne;
Publiczna pensja $;
// Zainicjuj dane
Funkcja __Construct ($ nazwa, $ dział, $ oznaczenie, $ pensja)

// Zadzwoń do konstruktora klasy nadrzędnych
rodzic :: __Construct ($ name, $ Department);
$ this-> oznaczenie = $ określenie;
$ this-> wynagrodzenie = $ pensja;

// Drukuj szczegóły pracownika
funkcja publiczna showDetails ()

Echo "Szczegóły pracownika:
";
Echo „Nazwa:”.$ this-> nazwa."
";
Echo „Oznaczenie:”.$ to-> oznaczenie."
";
Echo „Department:”.$ this-> dział."
";
echo „pensja: $”.$ this-> pensja."
";


// Utwórz obiekt klasy dzieci
$ objexeCive = new Executive („Jafar Iqbal”, „Marketing”, „Marketing Executive”, 4500);
// Zadzwoń do klasy dzieci
$ objexeCive-> showDetails ();
?>

Wyjście

Następujące dane wyjściowe pojawią się po uruchomieniu skryptu. Tutaj nazwa i dział pracowników są inicjowane przez konstruktora nadrzędnego, a wyznaczenie i pensja pracowników są inicjowane przez konstruktor dziecięcy.

Przykład 4: Wdrożyć hierarchiczne dziedzictwo

Poniższy skrypt pokazuje, jak zaimplementować dziedzictwo hierarchiczne w PHP. Tutaj, klasa 2 jest tworzony przez dziedziczenie Klasa 1, I klasa3 jest tworzony przez dziedziczenie klasa 2. W tym przykładzie trzy metody są zdefiniowane w trzech klasach. klasa3 Obiekt jest tworzony, aby wywołać metody wszystkich klas.

// Klasa rodziców
klasa 1
funkcja showMethod1 ()

echo „To klasa nadrzędna
";


// klasa dzieci
klasa 2 rozszerza klasę 1
funkcja showMethod2 ()

echo „To klasa dzieci
";


// klasa wielkiego dziecka
klasa 3 rozszerza klasę2
funkcja showMethod3 ()

Echo „To jest klasa wielkiego dziecka”;


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

Wyjście

Następujące dane wyjściowe pojawią się po uruchomieniu skryptu. Tutaj pojawił się pierwszy wiersz tekstu Klasa 1, Pojawił się drugi wiersz tekstu klasa 2, i pojawił się trzeci wiersz tekstu klasa3.

Film instruktażowy

Wniosek

Ten samouczek pokazał, że kilka różnych rodzajów spadków za pomocą skryptu PHP. Po przeczytaniu tego artykułu powinieneś zrozumieć pojęcie dziedziczenia i jego podstawowe zastosowania w skrypcie PHP.