Konstruktor bei Vererbung in OOP in PHP
Bei der Vererbung kann der Konstruktor der Elternklasse überschrieben werden. Schauen wir uns ein Beispiel an. Nehmen wir an, wir haben die folgende Elternklasse:
<?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;
}
}
?>
Nehmen wir an, von der Elternklasse erbt die folgende Klasse:
<?php
class Student extends User {
}
?>
Nehmen wir an, wir möchten im Kind-Klasse den Konstruktor erweitern, indem wir zusätzliche Parameter hinzufügen:
<?php
class Student extends User {
private $year;
public function __construct($name, $surn, $year) {
}
}
?>
In diesem Fall müssen wir zwingend
in der ersten Zeile den Konstruktor
der Elternklasse über parent::__construct() aufrufen:
<?php
class Student extends User {
private $year;
public function __construct($name, $surn, $year) {
parent::__construct($name, $surn);
}
}
?>
Der Befehl parent::__construct() ist im Wesentlichen
der Konstruktor der Elternklasse. Daher
übergeben wir ihm die erforderlichen Parameter:
<?php
class Student extends User {
private $year;
public function __construct($name, $surn, $year) {
parent::__construct($name, $surn);
}
}
?>
Nun weisen wir in der Kindklasse das Studienjahr der eigenen Eigenschaft der Kindklasse zu:
<?php
class Student extends User {
private $year;
public function __construct($name, $surn, $year) {
parent::__construct($name, $surn);
$this->year = $year;
}
}
?>
Erstellen wir einen Getter für das Studienjahr:
<?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;
}
}
?>
Nehmen wir an, die Klasse Employee erbt
von der Klasse User aus dieser
Lektion.
Überschreiben Sie in der Klasse Employee
den Konstruktor der Elternklasse, indem Sie ihm
Parameter für Alter und Gehalt hinzufügen.
Erstellen Sie Getter für Alter und Gehalt.