Konstruktor pärimisel OOP-s PHP-s
Pärimisel on võimalik ümber määrata vanema konstruktorit. Vaatame seda näite abil. Olgu meil järgmine vanema klass:
<?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;
}
}
?>
Olgu vanemaklassist pärib järgmine klass:
<?php
class Student extends User {
}
?>
Oletame, et soovime järglasklassis laiendada konstruktorit, lisades sellesse täiendavaid parameetreid:
<?php
class Student extends User {
private $year;
public function __construct($name, $surn, $year) {
}
}
?>
Sellisel juhul peime ⁅kohustuslikult⁆
esimesel real kutsuma välja vanema
konstruktori käsuga parent::__construct():
<?php
class Student extends User {
private $year;
public function __construct($name, $surn, $year) {
parent::__construct($name, $surn);
}
}
?>
Käsk parent::__construct() on olemuselt
vanema konstruktor. Seega
edastame sellele nõutud parameetrid:
<?php
class Student extends User {
private $year;
public function __construct($name, $surn, $year) {
parent::__construct($name, $surn);
}
}
?>
Nüüd kirjutame järglases õppeaasta järglase enda omadusse:
<?php
class Student extends User {
private $year;
public function __construct($name, $surn, $year) {
parent::__construct($name, $surn);
$this->year = $year;
}
}
?>
Teeme getteri õppeaasta jaoks:
<?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;
}
}
?>
Olgu klass Employee pärib
klassist User sellest
õppetükist.
Määrake klassis Employee
ümber vanema konstruktor, lisades sellesse
parameetri vanuse ja palgaga.
Tehke getterid vanuse ja palga jaoks.