⊗ppOpIhCn 30 of 107 menu

Constructor la moștenire în OOP în PHP

La moștenire se poate suprascrie constructorul părintelui. Să analizăm un exemplu. Să presupunem că avem următoarea clasă părinte:

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

Să presupunem că din clasa părinte moștenește următoarea clasă:

<?php class Student extends User { } ?>

Să presupunem că vrem în clasa-descendent să extindem constructorul, adăugând în el parametri suplimentari:

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

În acest caz trebuie neapărat să apelăm prima linie constructorul părintelui prin parent::__construct():

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

Comanda parent::__construct() în esență este constructorul părintelui. De aceea să-i transmitem parametrii necesari:

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

Acum în descendent anul de studiu îl vom scrie în proprietatea sa a descendentului:

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

Să facem un getter pentru anul de studiu:

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

Să presupunem că clasa Employee moștenește din clasa User din această lecție.

Suprascrieți în clasa Employee constructorul părintelui, adăugând în el parametrul cu vârsta și salariul.

Faceți getteri pentru vârstă și salariu.

Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge