Приватна својства при наслеђивању у ООП у 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;
  }
?>

Уверите се да ће код метода довести до грешке.