Privátne vlastnosti pri dedení v OOP v PHP
Privátne vlastnosti nie sú dedené. Ale potomok s nimi môže manipulovať cez verejné metódy rodiča. Pozrime sa na to v praxi. Nech máme nasledujúcu triedu-rodiča s privátnou vlastnosťou a jej getterom a setterom:
<?php
class User {
private $name;
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
Nech od rodiča dedí nasledujúci potomok:
<?php
class Student extends User {
}
?>
Vytvorme objekt potomka:
<?php
$student = new Student;
?>
Využime metódu rodiča, aby sme zapísali jeho privátnu vlastnosť:
<?php
$student->setName('john');
?>
Využime metódu rodiča, aby sme prečítali jeho privátnu vlastnosť:
<?php
$name = $student->getName();
echo $name;
?>
Daná je nasledujúca trieda-rodič:
<?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;
}
}
?>
Vytvorte triedu Employee,
ktorá bude dediť
od tohto rodiča.
Vytvorte objekt triedy Employee
a zavolajte zdedené
settery a gettery.
V triede Employee vytvorte
nasledujúcu metódu:
<?php
public function getFull() {
return $this->name . ' ' . $this->surn;
}
?>
Presvedčte sa, že kód metódy povedie k chybe.