⊗ppOpIhCn 30 of 107 menu

Konstruktor při dědění v OOP v PHP

Při dědění lze přepsat konstruktor rodiče. Podívejme se na příklad. Předpokládejme, že máme následující třídu rodiče:

<?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; } } ?>

Předpokládejme, že z rodičovské třídy dědí následující třída:

<?php class Student extends User { } ?>

Předpokládejme, že chceme v potomní třídě rozšířit konstruktor přidáním dodatečných parametrů:

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

V tomto případě musíme jako první řádek zavolat konstruktor rodiče pomocí parent::__construct():

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

Příkaz parent::__construct() je v podstatě konstruktorem rodiče. Proto do něj předáme požadované parametry:

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

Nyní v potomkovi nastavíme rok studia do vlastní vlastnosti potomka:

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

Vytvořme getter pro rok studia:

<?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; } } ?>

Předpokládejme, že třída Employee dědí z třídy User z této lekce.

Přepište v třídě Employee konstruktor rodiče přidáním parametru s věkem a platem.

Vytvořte gettery pro věk a plat.

Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout