Ú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čstva | Podpora v PHP |
Jednotné dedičstvo | ÁNO |
Viacúrovňové dedičstvo | ÁNO |
Hierarchické dedičstvo | ÁNO |
Viacnásobné dedičstvo | NO |
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:
<_?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 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:
<_?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ý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:
<_?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ý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 -
- Relácie v PHP
- Kompilátor PHP
- Pripojenie k databáze PHP
- Preťaženie v PHP
- Preťaženie Pythonu