Konstruktor by oorerwing in OOP in PHP
Met oorerwing kan jy die ouer se konstruktor ooraf. Kom ons kyk na 'n voorbeeld. Gestel ons het die volgende ouerklas:
<?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;
}
}
?>
Gestel die volgende klas erf af van die ouerklas:
<?php
class Student extends User {
}
?>
Gestel ons wil in die afstammelingklas die konstruktor uitbrei deur bykomende parameters by te voeg:
<?php
class Student extends User {
private $year;
public function __construct($name, $surn, $year) {
}
}
?>
In hierdie geval moet ons noodwendig
die ouer se konstruktor as eerste reël oproep
met parent::__construct():
<?php
class Student extends User {
private $year;
public function __construct($name, $surn, $year) {
parent::__construct($name, $surn);
}
}
?>
Die opdrag parent::__construct() is in wese die
ouer se konstruktor. Laat ons dus
die vereiste parameters daaraan oordra:
<?php
class Student extends User {
private $year;
public function __construct($name, $surn, $year) {
parent::__construct($name, $surn);
}
}
?>
Laat ons nou die studiejaar in die afstammeling in sy eie eiendom van die afstammeling aanmeld:
<?php
class Student extends User {
private $year;
public function __construct($name, $surn, $year) {
parent::__construct($name, $surn);
$this->year = $year;
}
}
?>
Kom ons maak 'n getter vir die studiejaar:
<?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;
}
}
?>
Gestel klas Employee erf af
van klas User uit hierdie
les.
Herdefinieer in klas Employee
die ouer se konstruktor deur 'n
parameter met ouderdom en salaris by te voeg.
Maak getters vir ouderdom en salaris.