Metodat Private në Trashëgiminë në OOP në PHP
Metodat private nuk trashëgohen. Kjo është bërë qëllimisht, për të mos shkelur enkapsulimin. Le të shohim një shembull. Le të themi se kemi klasën e mëposhtme prind me një metodë private:
<?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);
}
}
?>
Le të themi se nga klasa prind trashëgohet klasë e mëposhtme:
<?php
class Student extends User {
private $surn;
public function setSurn($surn) {
$this->surn = $surn;
}
public function getSurn() {
return $this->surn;
}
}
?>
Le të themi se pasardhsi dëshiron të përdorë metodën private të prindit. PHP nuk do ta lejojë këtë dhe do të shfaqë një gabim:
<?php
class Student extends User {
private $surn;
public function setSurn($surn) {
$this->surn = $surn;
}
public function getSurn() {
return $this->capeFirst($this->surn); // do të jetë gabim
}
}
?>
Provoni në klasën Employee
të përdorni metodën private
të prindit.