⊗ppOpIhCn 30 of 107 menu

Konstruktor pri dedovanju v OOP v PHP

Pri dedovanju je mogoče preglasiti konstruktor starša. Poglejmo si primer. Imejmo naslednji razred starš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; } } ?>

Naj od starševskega razreda deduje naslednji razred:

<?php class Student extends User { } ?>

Recimo, da želimo v razredu-potomcu razširiti konstruktor z dodajanjem dodatnih parametrov:

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

V tem primeru moramo obvezno v prvi vrstici poklicati konstruktor starša z parent::__construct():

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

Ukaz parent::__construct() je v bistvu konstruktor starša. Zato mu posredujemo zahtevane parametre:

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

Sedaj v potomcu leto študija zapišimo v lastno lastnost potomca:

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

Naredimo getter za leto študija:

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

Naj razred Employee deduje od razreda User iz te lekcije.

Preglasite v razredu Employee konstruktor starša, tako da mu dodate parameter s starostjo in plačo.

Naredite getterje za starost in plačo.

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
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni