Запіс на курсы па HTML, CSS, JavaScript, PHP, Python, фрэймворкам і CMS,
а таксама: дапамога ў пошуку працы і заказаў, стажыроўка на рэальных праектах→
⊗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 канструктар бацькі, дадаўшы ў яго параметр з узростам і зарплатай.

Зрабіце гетары для ўзросту і зарплаты.

byenru