Прыватныя ўласцівасці пры наследаванні ў ААП у 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;
  }
?>

Пераканайцеся, што код метаду прыведзе да памылкі.