Konstruktorius paveldėjime OOP PHP
Paveldėjimo metu galima perrašyti tėvinį konstruktorių. Pažiūrėkime pavyzdžiu. Tarkime, kad turime tokį tėvinę klasę:
<?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;
}
}
?>
Tarkime, kad iš tėvinės klasės paveldi ši klasė:
<?php
class Student extends User {
}
?>
Tarkime, kad norime įvesties klasėje išplėsti konstruktorių, pridėdami jame papildomus parametrus:
<?php
class Student extends User {
private $year;
public function __construct($name, $surn, $year) {
}
}
?>
Šiuo atveju mes privalome
pirmoje eilutėje iškviesti tėvinį konstruktorių
per parent::__construct():
<?php
class Student extends User {
private $year;
public function __construct($name, $surn, $year) {
parent::__construct($name, $surn);
}
}
?>
Komanda parent::__construct() iš esmės yra
tėvinis konstruktorius. Todėl
perduokime į jį reikiamus parametrus:
<?php
class Student extends User {
private $year;
public function __construct($name, $surn, $year) {
parent::__construct($name, $surn);
}
}
?>
Dabar įvestyje mokslo metus įrašykime į savo įvesties savybę:
<?php
class Student extends User {
private $year;
public function __construct($name, $surn, $year) {
parent::__construct($name, $surn);
$this->year = $year;
}
}
?>
Sukurkime getterį mokslo metams:
<?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;
}
}
?>
Tarkime, klasė Employee paveldi
iš klasės User iš šios
pamokos.
Perrašykite klasėje Employee
tėvinį konstruktorių, pridėdami į jį
parametrą su amžiumi ir atlyginimu.
Sukurkite getterius amžiui ir atlyginimui.