⊗ppOpIhCn 30 of 107 menu

Конструктор при наследовању у ООП у PHP-у

При наслеђивању можемо да преписујемо конструктор родитеља. Хајде да погледамо на примеру. Нека имамо следећу класу родитеља:

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

Нека од родитељске класе наслеђује следећа класа:

<?php class Student extends User { } ?>

Нека желимо у класи-потомку да проширимо конструктор, додајући у њега додатне параметре:

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

У том случају обавезно морамо у првом реду позвати конструктор родитеља преко parent::__construct():

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

Команда parent::__construct() у суштини јесте конструктор родитеља. Зато проследимо у њега тражене параметре:

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

Сада у потомку годину студирања запишимо у своје својство потомка:

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

Направимо гетер за годину студија:

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

Нека класа Employee наслеђује од класе User из овог часа.

Препишите у класи Employee конструктор родитеља, додајући у њега параметар са годинама и платом.

Направите гетере за године и плату.

Српски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Користимо колачиће за рад сајта, аналитику и персонализацију. Обрада података се врши у складу са Политиком приватности.
прихвати све подеси одбиј