Приватна својства при наслеђивању у ООП у PHP
Приватна својства се не наслеђују. Али потомак може да манипулише њима кроз јавне методе родитеља. Хајде да погледамо у пракси. Нека имамо следећу родитељску класу са приватним својством и њеним геттером и сеттером:
php<?php
class User {
private $name;
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
Нека од родитеља наслеђује следећи потомак:
php<?php
class Student extends User {
}
?>
Направимо објекат потомка:
php<?php
$student = new Student;
?>
Искористимо метод родитеља, да запишемо његово приватно својство:
php<?php
$student->setName('john');
?>
Искористимо метод родитеља, да прочитамо његово приватно својство:
php<?php
$name = $student->getName();
echo $name;
?>
Задание 1
Дата је следећа родитељска класа:
php<?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;
}
}
?>
Направите класу Employee,
која ће наслеђивати
од овог родитеља.
Задание 2
Направите објекат класе Employee
и позовите наслеђене
сеттере и геттере.
Задание 3
У класи Employee направите
следећи метод:
php<?php
public function getFull() {
return $this->name . ' ' . $this->surn;
}
?>
Уверите се да ће код метода довести до грешке.