Úvod do dědičnosti v PHP

Dědičnost je způsob, jak rozšířit stávající funkčnost třídy v nově vytvořené třídě. Do nově vytvořené třídy můžeme kromě rozšíření funkcí základní třídy přidat i další funkce. Když zdědíme jednu třídu, řekneme, že zděděná třída je podřízená třída (podtřída) a od které se dědíme, se nazývá nadřazená třída. Rodičovská třída je také známá jako základní třída. Toto je způsob, který umožňuje lepší správu programovacího kódu a opakované použití kódu. Myšlenka použití dědičnosti spočívá v lepší správě kódu a opětovném použití kódu. V tomto tématu se dozvíme o dědičnosti v PHP.

Druhy dědičnosti v PHP

PHP podporuje různé typy dědičnosti, jako je JAVA. Níže uvedená tabulka ukazuje seznam typů dědičnosti a stav podpory v PHP.

Typ dědičnostiPodpora v PHP
Jednotné dědictvíANO
Víceúrovňové dědictvíANO
Hierarchické dědictvíANO
Vícenásobné dědictvíNE

1. Jediné dědictví

PHP podporuje Single dědičnost. Single dědičnost je koncept v PHP, ve kterém jednu třídu může zdědit pouze jedna třída. Mezi tímto procesem musíme mít dvě třídy. Jedna je základní třída (nadřazená třída) a druhá podřízená třída sama. Pojďme to pochopit na příkladu. To je populárně známé jako jednoduché dědictví. Tento typ dědičnosti v jazyce PHP zůstává stejný jako JAVA, C ++ atd.

Kód:

<_?php
class MyAccess (
var $var = "This is first var";
protected $fist_name;
// simple class method
function returnVar() (
echo $this->fist_name;
)
function set_fist_name($set_this)(
$this->fist_name = $set_this;
)
)
class child extends MyAccess (
function setVal($set_this)(
$this->fist_name = $set_this;
)
function getVal()(
echo $this->fist_name;
)
)
$obj1 = new child();
$obj1->setVal("Jai Shre");
$obj1->getVal();
?>

MyAccess je rodič a dítě je jméno podřízené třídy.

Výstup:

2. Víceúrovňové dědictví

PHP podporuje víceúrovňovou dědičnost. V tomto typu dědičnosti budeme mít více než 2 třídy. V tomto typu dědičnosti bude nadřazená třída zděděna podřízenou třídou, potom tato podřízená třída bude zděděna podřízenou třídou. Tento typ dědičnosti v jazyce PHP zůstává stejný jako C ++ atd.

Kód:

<_?php
class ParentClass (
var $var = "This is first var";
public $fist_name;
// simple class method
function returnVar() (
echo $this->fist_name;
)
function set_fist_name($set_this)(
$this->fist_name = $set_this;
)
)
class child_1 extends ParentClass (
function setVal($set_this)(
$this->fist_name = $set_this;
)
function getVal()(
echo "Extended By Parent Class -". $this->fist_name;
)
)
class child_2 extends child_1 (
function setVal($set_this)(
$this->fist_name = $set_this;
)
function getVal()(
echo "Extended By child 1 - ".$this->fist_name;
)
)
$obj1 = new child_1();
$obj1->setVal("This is first inherited class");
$obj1->getVal();
echo "
";
$obj2 = new child_2();
$obj2->setVal("This is second inherited class");
$obj2->getVal();
?>

Výstup:

3. Hierarchické dědictví

PHP podporuje hierarchickou dědičnost. Hierarchické dědictví je typ dědičnosti, ve kterém program sestává z jediné rodiče a více než jedné podřízené třídy. Pojďme pochopit to samé s tímto příkladem. Tento typ dědičnosti v jazyce PHP zůstává stejný jako JAVA, C ++ atd.

Kód:

<_?php
class ParentClass (
var $var = "This is first var";
public $fist_name;
// simple class method
function returnVar() (
echo $this->fist_name;
)
function set_fist_name($set_this)(
$this->fist_name = $set_this;
)
)
class child_1 extends ParentClass (
function setVal($set_this)(
$this->fist_name = $set_this;
)
function getVal()(
echo $this->fist_name;
)
)
class child_2 extends ParentClass (
function setVal($set_this)(
$this->fist_name = $set_this." - ".$set_this;;
)
function getVal()(
echo $this->fist_name;
)
)
$obj1 = new child_1();
$obj1->setVal("This is first child class");
$obj1->getVal();
echo "
";
$obj2 = new child_2();
$obj2->setVal("This is second child class");
$obj2->getVal();
?>

Výstup:

Máme jednu nadřazenou třídu s názvem ParentClass a dvě podřízené třídy child_1 a child_2. Daný scénář dědičnosti se nazývá hierarchické dědictví.

Význam dědičnosti v PHP

Důležitost dědictví je mnohem více, protože přichází s obrovskými výhodami.

  • Opakovaná použitelnost kódu je jedním z nejčastěji používaných v dědičnosti, základní třída zůstává tak, jak je mezi procesem. Jak vidíme ve výše uvedeném příkladu veškeré dědičnosti, kód se znovu používá z jedné třídy do druhé. Není třeba, abychom znovu a znovu psali totéž.
  • Základní třídu může používat řada odvozených tříd v hierarchii tříd. Ano, jedná se o typ dědičnosti, ve kterém můžeme jít o rozšíření v nadřazené třídě s více dědictvími.
  • Rozšiřitelnost je jednou z výhod dědičnosti, ve které můžeme rozšířit funkce základní třídy, aniž bychom provedli malé nebo žádné změny, abychom splnili obchodní požadavky. Předpokládejme, že na začátku jdeme s rodičovskou třídou pouze bez podřízené třídy. V případě potřeby však můžeme přidat dětskou třídu, abychom mohli později splnit naše obchodní potřeby.
  • Přepracování je další výhodou této funkce dědičnosti, ve které můžeme přepsat definici funkce základní třídy do odvozené třídy, abychom mohli provést změny podle obchodních požadavků.
  • Menší množství kódu - mezitím budeme mít relativně méně kódu, zatímco budeme postupovat vpřed s dědičností ve srovnání s tradičním způsobem kódování.
  • Dědičnost také umožnila funkce skrývání dat. Jedinou požadovanou část nadřazené třídy můžeme vystavit podřízené třídě pomocí různých modifikátorů přístupu PHP.
  • Plně podporujeme MVC - můžeme jít na MVC pomocí konceptu dědičnosti.

Závěr

Měli bychom použít dědičnost k plnění našeho podnikání, protože přichází s některými přidanými výhodami ve srovnání s běžným kódem. Při řešení dědičnosti bychom se měli starat o zabezpečení dat. Můžeme použít modifikátor přístupu jako soukromý, chráněný k řešení skrytí dat a zabezpečení dat. PHP nepodporuje vícenásobné dědictví.

Doporučené články

Toto je průvodce po dědičnosti v PHP. Zde diskutujeme typy dědičnosti v PHP, tj. Jednoduché, víceúrovňové, hierarchické s příslušným ukázkovým kódem. Další informace naleznete také v následujícím článku -

  1. Relace v PHP
  2. Kompilátor PHP
  3. Připojení k databázi PHP
  4. Přetížení v PHP
  5. Přetížení Pythonu

Kategorie: