Privátní vlastnosti při dědění v OOP v PHP
Privátní vlastnosti nejsou děděny. Ale potomek s nimi může manipulovat prostřednictvím veřejných metod rodiče. Podívejme se na to v praxi. Předpokládejme, že máme následující rodičovskou třídu s privátní vlastností a její getter a setter:
<?php
class User {
private $name;
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
Předpokládejme, že z rodiče dědí následující potomek:
<?php
class Student extends User {
}
?>
Vytvořme objekt potomka:
<?php
$student = new Student;
?>
Použijme metodu rodiče, abychom zapsali jeho privátní vlastnost:
<?php
$student->setName('john');
?>
Použijme metodu rodiče, abychom přečetli jeho privátní vlastnost:
<?php
$name = $student->getName();
echo $name;
?>
Je dána následující rodičovská třída:
<?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;
}
}
?>
Vytvořte třídu Employee,
která bude dědit
od tohoto rodiče.
Vytvořte objekt třídy Employee
a zavolejte zděděné
settery a gettery.
V třídě Employee vytvořte
následující metodu:
<?php
public function getFull() {
return $this->name . ' ' . $this->surn;
}
?>
Přesvědčte se, že kód metody povede k chybě.