Dedičnosť v PHP - 3 Typy a význam dedičstva s príkladom

Obsah:

Anonim

Úvod do dedičstva v PHP

Dedičnosť je spôsob rozšírenia existujúcej funkčnosti triedy v novovytvorenej triede. Do novovytvorenej triedy môžeme okrem rozšírenia funkcií základnej triedy pridať aj ďalšie funkcie. Keď zdedíme jednu triedu, hovoríme, že zdedená trieda je podradená trieda (subtrieda) a od ktorej sa zdedíme, sa nazýva rodičovská trieda. Rodičovská trieda je známa aj ako základná trieda. Toto je spôsob, ktorý umožňuje lepšiu správu programovacieho kódu a opätovné použitie kódu. Myšlienka použitia dedičstva spočíva v lepšom spravovaní kódu a opätovnom použití kódu. V tejto téme sa dozvieme o dedičnosti v PHP.

Druhy dedičnosti v PHP

PHP podporuje rôzne typy dedičstva ako JAVA. V nasledujúcej tabuľke je uvedený zoznam typov dedičnosti a stav podpory v PHP.

Typ dedičstvaPodpora v PHP
Jednotné dedičstvoÁNO
Viacúrovňové dedičstvoÁNO
Hierarchické dedičstvoÁNO
Viacnásobné dedičstvoNO

1. Jediné dedičstvo

PHP podporuje Single dedičnosť. Single dedičnosť je koncept v PHP, v ktorom jednu triedu môže zdediť iba jedna trieda. Medzi týmto procesom musíme mať dve triedy. Jedna je základná trieda (rodičovská trieda) a druhá samotná podradená trieda. Poďme pochopiť to isté s príkladom. Všeobecne sa nazýva jednoduché dedičstvo. Tento typ dedičnosti v jazyku PHP zostáva rovnaký ako JAVA, C ++ atď.

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 dieťa je názov podradenej triedy.

Výkon:

2. Viacúrovňové dedičstvo

PHP podporuje viacúrovňové dedičstvo. V tomto type dedičstva budeme mať viac ako 2 triedy. Pri tomto type dedenia bude rodičovská trieda zdedená podradenou triedou, potom táto podradená trieda bude zdedená podradenou triedou. Tento typ dedičnosti v jazyku PHP zostáva rovnaký ako C ++ atď.

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ýkon:

3. Hierarchické dedičstvo

PHP podporuje hierarchické dedičstvo. Hierarchické dedičstvo je typ dedičstva, v ktorom program pozostáva z jedného rodiča a viac ako jednej triedy dieťaťa. Poďme pochopiť to isté s týmto príkladom. Tento typ dedičnosti v jazyku PHP zostáva rovnaký ako JAVA, C ++ atď.

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ýkon:

Máme jednu rodičovskú triedu s názvom ParentClass a dve podradené triedy child_1 a child_2. Daný scenár dedičstva sa nazýva hierarchické dedičstvo.

Dôležitosť dedičnosti v PHP

Dôležitosť dedičstva je omnoho viac, pretože s ňou prichádza s obrovskými výhodami.

  • Opätovné použitie kódu je jedným z najčastejšie používaných v dedičstve, základná trieda zostáva tak ako je medzi procesom. Ako vidíme vo vyššie uvedenom príklade všetkého dedičstva, kód sa opakovane používa z jednej triedy do druhej. Nemusíme musieť znova a znova písať to isté.
  • Základnú triedu môže používať rad jej odvodených tried v hierarchii tried. Áno, toto je druh dedičstva, v ktorom môžeme ísť o rozšírenie v materskej triede s viacnásobným dedičstvom.
  • Rozšíriteľnosť je jednou z výhod dedičstva, v ktorej môžeme rozšíriť funkciu základnej triedy bez toho, aby sme vykonali malé alebo žiadne zmeny na splnenie obchodných požiadaviek. Predpokladajme, že na začiatku ideme iba s rodičovskou triedou bez triedy pre deti. V prípade potreby však môžeme pridať triedu pre deti, aby sme splnili naše obchodné potreby neskôr.
  • Ďalšou výhodou tejto funkcie dedičnosti je prepísanie, v ktorom môžeme prepísať definíciu funkcie základnej triedy na odvodenú triedu, aby sme vykonali zmeny podľa obchodných požiadaviek.
  • Menšie množstvo kódu - medzitým budeme mať v porovnaní s tradičným spôsobom kódovania menej kódu, zatiaľ čo budeme postupovať vpred s dedičnosťou.
  • Dedičnosť tiež umožnila funkcie skrytia údajov. Jedinú požadovanú časť nadradenej triedy môžeme vystaviť podradenej triede pomocou rôznych modifikátorov prístupu PHP.
  • Plne podporujeme MVC - môžeme ísť na MVC pomocou koncepcie dedičstva.

záver

Mali by sme využiť dedičstvo na splnenie nášho podnikania, pretože v porovnaní s normálnym kódom má niektoré ďalšie výhody. Mali by sme sa starať o bezpečnosť údajov pri riešení dedičstva. Modifikátor prístupu môžeme použiť ako súkromný, chránený na riešenie skrytia údajov a zabezpečenia údajov. PHP nepodporuje viacnásobné dedičstvo.

Odporúčané články

Toto je sprievodca dedičstvom v PHP. Tu diskutujeme typy dedičnosti v PHP, tj jednoduché, viacúrovňové, hierarchické s príslušným vzorovým kódom. Viac informácií nájdete aj v nasledujúcom článku -

  1. Relácie v PHP
  2. Kompilátor PHP
  3. Pripojenie k databáze PHP
  4. Preťaženie v PHP
  5. Preťaženie Pythonu