Kaedah Persendirian dalam Pewarisan OOP dalam PHP
Kaedah persendirian tidak diwarisi. Ini dilakukan secara khusus untuk tidak melanggar enkapsulasi. Mari kita lihat contoh. Katakan kita mempunyai kelas induk berikut dengan kaedah persendirian:
<?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);
}
}
?>
Katakan kelas berikut mewarisi dari kelas induk:
<?php
class Student extends User {
private $surn;
public function setSurn($surn) {
$this->surn = $surn;
}
public function getSurn() {
return $this->surn;
}
}
?>
Katakan kelas keturunan ingin menggunakan kaedah persendirian induk. PHP tidak akan membenarkannya dan akan memaparkan ralat:
<?php
class Student extends User {
private $surn;
public function setSurn($surn) {
$this->surn = $surn;
}
public function getSurn() {
return $this->capeFirst($this->surn); // akan menyebabkan ralat
}
}
?>
Cuba gunakan kaedah persendirian induk
dalam kelas Employee.