Ú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čnosti | Podpora 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:
<_?phpclass 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:
<_?phpclass 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:
<_?phpclass 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 -
- Relace v PHP
- Kompilátor PHP
- Připojení k databázi PHP
- Přetížení v PHP
- Přetížení Pythonu