Proprietăți private în moștenire în OOP în PHP
Proprietățile private nu sunt moștenite. Dar descendenții le pot manipula prin metodele publice ale părintelui. Să vedem în practică. Să presupunem că avem următorul clasă-părinte cu o proprietate privată și getter-ul și setter-ul ei:
<?php
class User {
private $name;
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
Să presupunem că de la părinte moștenește următorul descendent:
<?php
class Student extends User {
}
?>
Să creăm un obiect al descendentului:
<?php
$student = new Student;
?>
Să folosim metoda părintelui, pentru a scrie în proprietatea lui privată:
<?php
$student->setName('john');
?>
Să folosim metoda părintelui, pentru a citi proprietatea lui privată:
<?php
$name = $student->getName();
echo $name;
?>
Este dată următoarea clasă-părinte:
<?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;
}
}
?>
Creați clasa Employee,
care va moșteni
de la acest părinte.
Creați un obiect al clasei Employee
și apelați settere-ile și gettere-ile
moștenite.
În clasa Employee faceți
următoarea metodă:
<?php
public function getFull() {
return $this->name . ' ' . $this->surn;
}
?>
Asigurați-vă că codul metodei va duce la o eroare.