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<?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<?php
  class Student extends User {
    
  }
?>

Napravićemo objekat potomka:

php<?php
  $student = new Student;
?>

Iskoristimo metod roditelja, da zapišemo njegovo privatno svojstvo:

php<?php
  $student->setName('john');
?>

Iskoristimo metod roditelja, da pročitamo njegovo privatno svojstvo:

php<?php
  $name = $student->getName();
  echo $name;
?>
Задание 1

Dat je sledeći roditeljski klasa:

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;
    }
  }
?>

Napravite klasu Employee, koji će nasleđivati od ovog roditelja.

Задание 2

Napravite objekat klase Employee i pozovite nasleđene setere i getere.

Задание 3

U klasi Employee napravite sledeći metod:

php<?php
  public function getFull() {
    return $this->name . ' ' . $this->surn;
  }
?>

Uverite se da će kod metoda dovesti do greške.