Privačios savybės paveldėjime OOP PHP
Privačios savybės nepaveldimos. Bet palikuonis gali jomis manipuliuoti per tėvinio objekto viešuosius metodus. Pažiūrėkime tai praktiškai. Tarkime, kad turime šią tėvinę klasę su privačia savybe ir jos getter'iu ir setter'iu:
<?php
class User {
private $name;
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
Tarkime, kad iš tėvo paveldi tokį palikuonį:
<?php
class Student extends User {
}
?>
Sukurkime palikuonio objektą:
<?php
$student = new Student;
?>
Panaudokime tėvo metodą, kad įrašytume jo privačią savybę:
<?php
$student->setName('john');
?>
Panaudokime tėvo metodą, kad nuskaitytume jo privačią savybę:
<?php
$name = $student->getName();
echo $name;
?>
Pateikta ši tėvinė klasė:
<?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;
}
}
?>
Sukurkite klasę Employee,
kuri paveldės
iš šio tėvo.
Sukurkite Employee klasės objektą
ir iškviest paveldėtus
setter'ius ir getter'ius.
Employee klasėje padarykite
šį metodą:
<?php
public function getFull() {
return $this->name . ' ' . $this->surn;
}
?>
Įsitikinkite, kad metodo kodas sukels klaidą.