Privaatmetodes by oorerwing in OOP in PHP
Privaatmetodes word nie geërf nie. Dit is doelbewus gedoen om nie inkapsulasie te skend nie. Kom ons kyk na 'n voorbeeld. Gestel ons het die volgende ouerklas met 'n privaatmetode:
<?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);
}
}
?>
Gestel die volgende klas erf van die ouerklas:
<?php
class Student extends User {
private $surn;
public function setSurn($surn) {
$this->surn = $surn;
}
public function getSurn() {
return $this->surn;
}
}
?>
Gestel die nageslag wil die privaatmetode van die ouer gebruik. PHP sal dit nie toelaat nie en sal 'n fout gee:
<?php
class Student extends User {
private $surn;
public function setSurn($surn) {
$this->surn = $surn;
}
public function getSurn() {
return $this->capeFirst($this->surn); // sal fout gee
}
}
?>
Probeer in die klas Employee
om die privaatmetode van die ouer te gebruik.