⊗ppOpIhCn 30 of 107 menu

Konstruktor prilikom nasleđivanja u OOP u PHP-u

Prilikom nasleđivanja možete redefinisati konstruktor roditelja. Pogledajmo na primeru. Pretpostavimo da imamo sledeću roditeljsku klasu:

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

Pretpostavimo da od roditeljske klase nasleđuje sledeća klasa:

<?php class Student extends User { } ?>

Pretpostavimo da u klasi-potomku želimo da proširimo konstruktor, dodajući dodatne parametre:

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

U ovom slučaju moramo obavezno prvom linijom pozvati konstruktor roditelja pomoću parent::__construct():

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

Komanda parent::__construct() u suštini je konstruktor roditelja. Stoga, prosledimo mu tražene parametre:

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

Sada u potomku godinu studija upisaćemo u svoje svojstvo potomka:

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

Napravimo getter za godinu studija:

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

Pretpostavimo da klasa Employee nasleđuje od klase User iz ove lekcije.

Redefinišite u klasi Employee konstruktor roditelja, dodajući u njega parametar za godine i platu.

Napravite gettere za godine i platu.

Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij