Konstruktor ved arv i OOP i PHP
Ved arv kan man overskrive forældrekonsruktøren. Lad os se et eksempel. Antag at vi har følgende forældreklasse:
<?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;
}
}
?>
Antag at følgende klasse arver fra forældreklassen:
<?php
class Student extends User {
}
?>
Antag at vi i barnklassen ønsker at udvide konstruktøren ved at tilføje yderligere parametre:
<?php
class Student extends User {
private $year;
public function __construct($name, $surn, $year) {
}
}
?>
I dette tilfælde er vi nødt til
at kalde forældrekonsruktøren
via parent::__construct() som den første linje:
<?php
class Student extends User {
private $year;
public function __construct($name, $surn, $year) {
parent::__construct($name, $surn);
}
}
?>
Kommandoen parent::__construct() er i virkeligheden
forældrekonsruktøren. Så
lad os sende de nødvendige parametre til den:
<?php
class Student extends User {
private $year;
public function __construct($name, $surn, $year) {
parent::__construct($name, $surn);
}
}
?>
Lad os nu i barnklassen indsætte studieåret i barnklassens egen egenskab:
<?php
class Student extends User {
private $year;
public function __construct($name, $surn, $year) {
parent::__construct($name, $surn);
$this->year = $year;
}
}
?>
Lad os lave en getter for studieåret:
<?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;
}
}
?>
Antag at klassen Employee arver
fra klassen User fra denne
lektion.
Overskriv i klassen Employee
forældrekonsruktøren, og tilføj til den
parametre for alder og løn.
Lav getters for alder og lon.