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 классада ота-онанинг
конструкторини қайта аниқланг, унга
ёш ва маош параметрларини қўшинг.
Ёш ва маош учун геттерлар яратинг.