⊗ppOpIhCn 30 of 107 menu

Konštruktor pri dedení v OOP v PHP

Pri dedení je možné prepísať konštruktor rodiča. Pozrime sa na príklad. Predpokladajme, že máme nasledujúcu triedu rodiča:

<?php class User { private $name; private $surn; public function __construct($name, $surn) { $this->name = $name; $this->surn = $surn; } public function getName() { return $this->name; } public function getSurn() { return $this->surn; } } ?>

Predpokladajme, že z rodičovskej triedy dedí nasledujúca trieda:

<?php class Student extends User { } ?>

Predpokladajme, že v triede-potomkovi chceme rozšíriť konštruktor pridaním ďalších parametrov:

<?php class Student extends User { private $year; public function __construct($name, $surn, $year) { } } ?>

V tomto prípade musíme v prvom riadku vyvolať konštruktor rodiča pomocou parent::__construct():

<?php class Student extends User { private $year; public function __construct($name, $surn, $year) { parent::__construct($name, $surn); } } ?>

Príkaz parent::__construct() je v podstate konštruktorom rodiča. Preto do neho odovzdajme požadované parametre:

<?php class Student extends User { private $year; public function __construct($name, $surn, $year) { parent::__construct($name, $surn); } } ?>

Teraz v potomkovi zapíšme rok štúdia do vlastnej vlastnosti potomka:

<?php class Student extends User { private $year; public function __construct($name, $surn, $year) { parent::__construct($name, $surn); $this->year = $year; } } ?>

Vytvorme getter pre rok štúdia:

<?php class Student extends User { private $year; public function __construct($name, $surn, $year) { parent::__construct($name, $surn); $this->year = $year; } public function getYear() { return $this->year; } } ?>

Nech trieda Employee dedí od triedy User z tejto lekcie.

Prepíšte v triede Employee konštruktor rodiča pridaním parametrov s vekom a platom.

Vytvorte gettre pre vek a plat.

Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť