Privé-eigenschappen bij overerving in OOP in PHP
Privé-eigenschappen worden niet overgeërfd. Maar een afstammeling kan ze manipuleren via openbare methodes van de ouder. Laten we dit in de praktijk bekijken. Stel dat we de volgende ouderklasse hebben met een privé-eigenschap en zijn getter en setter:
<?php
class User {
private $name;
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
Stel dat van de ouder de volgende afstammeling erft:
<?php
class Student extends User {
}
?>
Laten we een object van de afstammeling maken:
<?php
$student = new Student;
?>
Laten we de methode van de ouder gebruiken om zijn privé-eigenschap in te stellen:
<?php
$student->setName('john');
?>
Laten we de methode van de ouder gebruiken om zijn privé-eigenschap uit te lezen:
<?php
$name = $student->getName();
echo $name;
?>
Gegeven de volgende ouderklasse:
<?php
class User {
private $name;
private $surn;
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
public function setSurn($surn) {
$this->surn = $surn;
}
public function getSurn() {
return $this->surn;
}
}
?>
Maak een klasse Employee
die van deze ouder erft.
Maak een object van de klasse Employee
en roep de overgeërfde
setters en getters aan.
Maak in de klasse Employee
de volgende methode:
<?php
public function getFull() {
return $this->name . ' ' . $this->surn;
}
?>
Zorg ervoor dat de code van de methode tot een fout leidt.