Конструктор при наследовање во ООП во 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
конструкторот на родителот, додавајќи во него
параметар со возраста и платата.
Направете гетери за возраста и платата.