Sobes.tech
Junior

Co je rozšíření (extend) v kontextu PHP?

sobes.tech AI

Odpověď od AI

Rozšíření, nebo dědičnost, v PHP je mechanismus, který umožňuje jedné třídě (potomková nebo odvozená třída) dědit vlastnosti a metody jiné třídy (rodičovské nebo základní třídy).

Klíčové slovo extends se používá k označení rodičovské třídy.

Výhody dědičnosti:

  • Opakované použití kódu: Není nutné psát stejný kód několikrát.
  • Rozšiřitelnost: Potomková třída může přidávat nové vlastnosti a metody nebo přepisovat stávající z rodičovské třídy.
  • Polymorfismus: Objekty různých tříd mohou být zpracovávány jako objekty společné rodičovské třídy.

Příklad:

<?php

class Animal {
    public function eat() {
        echo "Zvíře jí.";
    }
}

class Dog extends Animal {
    public function bark() {
        echo "Pes štěká.";
    }
}

$dog = new Dog();
$dog->eat(); // Volání metody z rodičovské třídy
$dog->bark(); // Volání metody z potomkovské třídy

?>

Potomkovská třída dědí:

  • Privátní vlastnosti a metody (ačkoli existují v objektu, nelze je přímo volat z potomkovské třídy).
  • Konstruktor rodičovské třídy není automaticky volán při vytváření objektu potomkovské třídy, pokud není výslovně uveden pomocí parent::__construct().