Konstruktor öröklődéskor OOP-ban PHP-ben
Öröklődéskor felül lehet definiálni a szülő konstruktorát. Nézzünk egy példát. Tegyük fel, hogy a következő szülő osztályunk van:
<?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;
}
}
?>
Tegyük fel, hogy a szülő osztálytól a következő osztály örököl:
<?php
class Student extends User {
}
?>
Tegyük fel, hogy az utód osztályban ki szeretnénk bővíteni a konstruktort, hozzáadva további paramétereket:
<?php
class Student extends User {
private $year;
public function __construct($name, $surn, $year) {
}
}
?>
Ebben az esetben kötelezően
az első sorban meg kell hívnunk a szülő
konstruktorát a parent::__construct() segítségével:
<?php
class Student extends User {
private $year;
public function __construct($name, $surn, $year) {
parent::__construct($name, $surn);
}
}
?>
A parent::__construct() parancs lényegében
a szülő konstruktora. Ezért
adjuk át neki a szükséges paramétereket:
<?php
class Student extends User {
private $year;
public function __construct($name, $surn, $year) {
parent::__construct($name, $surn);
}
}
?>
Most az utódban a tanulmányi évet írjuk az utód saját tulajdonságába:
<?php
class Student extends User {
private $year;
public function __construct($name, $surn, $year) {
parent::__construct($name, $surn);
$this->year = $year;
}
}
?>
Készítsünk gettert a tanulmányi évhez:
<?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;
}
}
?>
Tegyük fel, hogy a Employee osztály örököl
a User osztálytól ebből a
leckéből.
Definiálja felül a Employee osztályban
a szülő konstruktorát, hozzáadva
paramétert az életkorral és a fizetéssel.
Készítsen gettereket az életkorhoz és a fizetéshez.