Privát tulajdonságok öröklődéskor az OOP-ban PHP-ben
A privát tulajdonságok nem öröklődnek. De az utód manipulálhatja azokat a szülő publikus metódusain keresztül. Nézzük meg a gyakorlatban. Tegyük fel, hogy van a következő szülő osztályunk privát tulajdonsággal és annak getter és setter metódusaival:
<?php
class User {
private $name;
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
Tegyük fel, hogy a szülőtől örököl a következő utód:
<?php
class Student extends User {
}
?>
Hozzunk létre egy utód objektumot:
<?php
$student = new Student;
?>
Használjuk a szülő metódusát, hogy beállítsuk annak privát tulajdonságát:
<?php
$student->setName('john');
?>
Használjuk a szülő metódusát, hogy olvassuk ki annak privát tulajdonságát:
<?php
$name = $student->getName();
echo $name;
?>
Adott a következő szülő osztály:
<?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;
}
}
?>
Készítsen egy Employee osztályt,
ami örököl
ettől a szülőtől.
Hozzon létre egy objektumot a Employee osztályból
és hívja meg az örökölt
setter és getter metódusokat.
A Employee osztályban készítse el
a következő metódust:
<?php
public function getFull() {
return $this->name . ' ' . $this->surn;
}
?>
Győződjön meg róla, hogy a metódus kódja hibához vezet.