⊗ppOpIhCn 30 of 107 menu

Konstruktor przy dziedziczeniu w OOP w PHP

Przy dziedziczeniu można przesłaniać konstruktor rodzica. Spójrzmy na przykład. Załóżmy, że mamy następującą klasę rodzica:

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

Załóżmy, że z klasy rodzica dziedziczy następująca klasa:

<?php class Student extends User { } ?>

Załóżmy, że chcemy w klasie-potomku rozszerzyć konstruktor, dodając do niego dodatkowe parametry:

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

W tym przypadku musimy koniecznie w pierwszej linii wywołać konstruktor rodzica za pomocą parent::__construct():

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

Polecenie parent::__construct() w istocie jest konstruktorem rodzica. Dlatego przekażmy do niego wymagane parametry:

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

Teraz w potomku rok nauki zapiszmy we własnej właściwości potomka:

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

Zróbmy getter dla roku nauki:

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

Załóżmy, że klasa Employee dziedziczy z klasy User z tej lekcji.

Przesłoń w klasie Employee konstruktor rodzica, dodając do niego parametr z wiekiem i wynagrodzeniem.

Zrób gettery dla wieku i wynagrodzenia.

Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć