Prywatne właściwości przy dziedziczeniu w OOP w PHP
Prywatne właściwości nie są dziedziczone. Ale potomek może manipulować nimi poprzez publiczne metody rodzica. Spójrzmy na to w praktyce. Załóżmy, że mamy następującą klasę rodzica z właściwością prywatną oraz jej getterem i setterem:
<?php
class User {
private $name;
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
Załóżmy, że od rodzica dziedziczy następujący potomek:
<?php
class Student extends User {
}
?>
Stwórzmy obiekt potomka:
<?php
$student = new Student;
?>
Wykorzystajmy metodę rodzica, aby zapisać jego prywatną właściwość:
<?php
$student->setName('john');
?>
Wykorzystajmy metodę rodzica, aby odczytać jego prywatną właściwość:
<?php
$name = $student->getName();
echo $name;
?>
Dana jest następująca klasa-rodzic:
<?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;
}
}
?>
Stwórz klasę Employee,
która będzie dziedziczyć
od tego rodzica.
Stwórz obiekt klasy Employee
i wywołaj odziedziczone
settery i gettery.
W klasie Employee stwórz
następującą metodę:
<?php
public function getFull() {
return $this->name . ' ' . $this->surn;
}
?>
Upewnij się, że kod metody prowadzi do błędu.