⊗ppOpIhCn 30 of 107 menu

Costruttore nell'ereditarietà in OOP in PHP

Nell'ereditarietà è possibile sovrascrivere il costruttore del genitore. Vediamo con un esempio. Supponiamo di avere la seguente classe genitore:

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

Supponiamo che dalla classe genitore erediti la seguente classe:

<?php class Student extends User { } ?>

Supponiamo di voler estendere il costruttore nella classe figlia, aggiungendovi parametri aggiuntivi:

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

In questo caso dobbiamo obbligatoriamente richiamare come prima riga il costruttore del genitore tramite parent::__construct():

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

Il comando parent::__construct() è in sostanza il costruttore del genitore. Pertanto passiamogli i parametri richiesti:

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

Ora nel figlio l'anno di corso scriviamolo nella sua proprietà del figlio:

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

Creiamo un getter per l'anno di corso:

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

Supponiamo che la classe Employee erediti dalla classe User di questa lezione.

Sovrascrivi nella classe Employee il costruttore del genitore, aggiungendovi un parametro con l'età e lo stipendio.

Crea i getter per l'età e lo stipendio.

Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta