Przejdź do treści

Centrum Kształcenia Zawodowego i Ustawicznego w Mrągowie

PHP: Dziedziczenie

czwartek,

PHP: Dziedziczenie

Dziedziczenie jest ważnym elementem OOP (programowania obiektowego) i pozwala na tworzenie bardziej modularnego i łatwego do zarządzania kodu – pozwala na tworzenie nowych klas na bazie istniejących. Klasa podrzędna (nazywana też klasą pochodną) dziedziczy metody i właściwości klasy nadrzędnej (nazywanej też klasą bazową), co umożliwia ponowne użycie kodu oraz organizację i strukturalizację kodu. W PHP podobnie jak w innych językach programowania obiektowego dziedziczenie daje możliwość tworzenia bardziej złożonych struktur danych i funkcjonalności, jednocześnie zachowując zasadę DRY (Don't Repeat Yourself).

Podstawy dziedziczenia w PHP

Definiowanie klasy nadrzędnej

Najpierw tworzysz klasę nadrzędną, która zawiera wspólne właściwości i metody, które będą dziedziczone.

class Pojazd {
    public $marka;
    public $model;

    public function start() {
        echo "Pojazd uruchomiony";
    }
}

Dziedziczenie w klasie pochodnej

Tworzysz klasę pochodną, która dziedziczy z klasy nadrzędnej. Używasz słowa kluczowego extends do wskazania, że klasa dziedziczy z innej klasy.

class Samochod extends Pojazd {
    public $liczbaDrzwi;

    public function otworzDrzwi() {
        echo "Drzwi otwarte";
    }
}

W tym przykładzie klasa Samochod dziedziczy właściwości i metody klasy Pojazd (takie jak marka, model i start), a także definiuje własną właściwość (liczbaDrzwi) i metodę (otworzDrzwi).

Tworzenie obiektów i dostęp do właściwości/metod

Możesz tworzyć instancje klasy pochodnej i korzystać zarówno z dziedziczonych, jak i własnych właściwości i metod.

$mojSamochod = new Samochod();
$mojSamochod->marka = "Toyota";
$mojSamochod->model = "Corolla";
$mojSamochod->liczbaDrzwi = 4;

$mojSamochod->start(); // Wywołanie dziedziczonej metody
$mojSamochod->otworzDrzwi(); // Wywołanie własnej metody

Przesłanianie metod (method overriding)

Klasa pochodna może przesłonić metody klasy nadrzędnej, definiując metodę o tej samej nazwie.

class Samochod extends Pojazd {
    public function start() {
        echo "Samochód uruchomiony";
    }
}

W tym przypadku, kiedy wywołasz metodę start na obiekcie klasy Samochod, zostanie użyta przesłonięta wersja metody.

Słowo kluczowe parent

Wewnątrz przesłoniętych metod możesz odwołać się do metody klasy nadrzędnej za pomocą słowa kluczowego parent.

class Samochod extends Pojazd {
    public function start() {
        parent::start(); // Wywołuje oryginalną metodę 'start' z klasy Pojazd
        echo "Samochód uruchomiony";
    }
}
Artykuł: Virtual Desktop Infrastructure

Virtual Desktop Infrastructure

Artykuł: Wirtualizacja: Overcommitment

Wirtualizacja: Overcommitment

Artykuł: Marc Andreessen

Marc Andreessen

Artykuł: Zakończenie staży

Zakończenie staży

Artykuł: Brendan Eich

Brendan Eich

Nasze technikum

Technik informatyk

Szkoły dla dorosłych

Nasza szkoła

Pełna oferta edukacyjna

Oferta szkoły