PHP da OOP da Meros olishda Konstruktor
Meros olish paytida ota-ona konstruktorini qayta belgilash mumkin. Keling, buni misol orgali ko'ramiz. Faraz qilaylik, bizda quyidagi ota-ona klass mavjud:
<?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;
}
}
?>
Faraz qilaylik, ota-ona klasidan quyidagi klass meros oladi:
<?php
class Student extends User {
}
?>
Faraz qilaylik, biz voris klassda konstruktorni kengaytirmoqchimiz, unga qo'shimcha parametrlar qo'shish orqali:
<?php
class Student extends User {
private $year;
public function __construct($name, $surn, $year) {
}
}
?>
Bunday holatda biz birinchi qator sifatida
parent::__construct() orqali ota-ona
konstruktorini chaqirishimiz shart:
<?php
class Student extends User {
private $year;
public function __construct($name, $surn, $year) {
parent::__construct($name, $surn);
}
}
?>
parent::__construct() buyrug'i aslida
ota-ona konstruktoridir. Shuning uchun
unga talab qilinadigan parametrlarni uzatamiz:
<?php
class Student extends User {
private $year;
public function __construct($name, $surn, $year) {
parent::__construct($name, $surn);
}
}
?>
Endi vorisda o'quv yilini vorisning o'z xususiyatiga yozamiz:
<?php
class Student extends User {
private $year;
public function __construct($name, $surn, $year) {
parent::__construct($name, $surn);
$this->year = $year;
}
}
?>
O'quv yili uchun getter yaratamiz:
<?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;
}
}
?>
Faraz qilaylik, Employee klassi
ushbu darsdagi User klasidan
meros oladi.
Employee klasida ota-ona
konstruktorini qayta belgilang, unga
yosh va maosh parametrlarini qo'shing.
Yosh va maosh uchun getterlarni yarating.