Privaatsed meetodid pärimisel OOP-s PHP-s
Privaatsed meetodid ei pärine. See on tehtud spetsiaalselt selleks, et mitte rikkuda inkapsulatsiooni. Vaatame näite abil. Oletame, et meil on järgmine vanemlik klass privaatse meetodiga:
<?php
class User {
private $name;
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->capeFirst($this->name);
}
private function capeFirst($str) {
return ucfirst($str);
}
}
?>
Oletame, et vanemlikust klassist pärineb järgmine klass:
<?php
class Student extends User {
private $surn;
public function setSurn($surn) {
$this->surn = $surn;
}
public function getSurn() {
return $this->surn;
}
}
?>
Oletame, et järeltulija soovib kasutada vanema privaatset meetodit. PHP ei luba seda ja annab vea:
<?php
class Student extends User {
private $surn;
public function setSurn($surn) {
$this->surn = $surn;
}
public function getSurn() {
return $this->capeFirst($this->surn); // annab vea
}
}
?>
Proovige klassis Employee
kasutada vanema privaatset meetodit.