Privatna svojstva pri nasleđivanju u OOP u PHP
Privatna svojstva se ne nasleđuju. Ali potomak može da manipuliše njima preko javnih metoda roditelja. Hajde da vidimo u praksi. Neka imamo sledeći roditeljski klasa sa privatnim svojstvom i njegovim geterom i seterom:
<?php
class User {
private $name;
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
Neka od roditelja nasleđuje sledeći potomak:
<?php
class Student extends User {
}
?>
Napravićemo objekat potomka:
<?php
$student = new Student;
?>
Iskoristimo metod roditelja, da zapišemo njegovo privatno svojstvo:
<?php
$student->setName('john');
?>
Iskoristimo metod roditelja, da pročitamo njegovo privatno svojstvo:
<?php
$name = $student->getName();
echo $name;
?>
Dat je sledeći roditeljski klasa:
<?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;
}
}
?>
Napravite klasu Employee,
koji će nasleđivati
od ovog roditelja.
Napravite objekat klase Employee
i pozovite nasleđene
setere i getere.
U klasi Employee napravite
sledeći metod:
<?php
public function getFull() {
return $this->name . ' ' . $this->surn;
}
?>
Uverite se da će kod metoda dovesti do greške.