Մասնավոր մեթոդներ ժառանգման ժամանակ OOP-ում PHP-ում
Մասնավոր մեթոդները չեն ժառանգվում: Դա արված է հատուկ, որպեսզի չխախտվի ինկապսուլյացիան: Եկեք նայենք օրինակով: Ենթադրենք, մենք ունենք հետևյալ ծնողական դասը մասնավոր մեթոդով:
<?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);
}
}
?>
Ենթադրենք, ծնողական դասից ժառանգում է հետևյալ դասը.
<?php
class Student extends User {
private $surn;
public function setSurn($surn) {
$this->surn = $surn;
}
public function getSurn() {
return $this->surn;
}
}
?>
Ենթադրենք, սերունդը ցանկանում է օգտագործել ծնողի մասնավոր մեթոդը: PHP-ն դա թույլ չի տա և կտա սխալ.
<?php
class Student extends User {
private $surn;
public function setSurn($surn) {
$this->surn = $surn;
}
public function getSurn() {
return $this->capeFirst($this->surn); // կլինի սխալ
}
}
?>
Փորձեք Employee դասում
օգտագործել ծնողի մասնավոր մեթոդը: