Vetitë private në trashëgiminë në OOP në PHP
Vetitë private nuk trashëgohen. Por pasardhësi mund t'i manipullojë ato përmes metodave publike të prindit. Le të shohim në praktikë. Le të themi se kemi klasën e mëposhtme prind me një pronë private dhe getter dhe setter të saj:
<?php
class User {
private $name;
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
Le të themi se nga prindi trashëgon pasardhësi i mëposhtëm:
<?php
class Student extends User {
}
?>
Le të krijojmë një objekt të pasardhësit:
<?php
$student = new Student;
?>
Le të përdorim metodën e prindit për të regjistruar pronën e tij private:
<?php
$student->setName('john');
?>
Le të përdorim metodën e prindit për të lexuar pronën e tij private:
<?php
$name = $student->getName();
echo $name;
?>
Jepet klasa e mëposhtme prind:
<?php
class User {
private $name;
private $surn;
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
public function setSurn($surn) {
$this->surn = $surn;
}
public function getSurn() {
return $this->surn;
}
}
?>
Krijoni klasën Employee,
e cila do të trashëgojë
nga ky prind.
Krijoni një objekt të klasës Employee
dhe thirrni setters dhe getters të trashëguar.
Në klasën Employee bëni
metodën e mëposhtme:
<?php
public function getFull() {
return $this->name . ' ' . $this->surn;
}
?>
Sigurohuni që kodi i metodës do të çojë në gabim.