Zasebne lastnosti pri dedovanju v OOP v PHP

Zasebne lastnosti se ne dedujejo. Ampak potomec lahko manipulira z njimi prek javnih metod starša. Poglejmo si to v praksi. Recimo, da imamo naslednji razred-starš z zasebno lastnostjo in njenim getterjem in setterjem:

php<?php
  class User {
    private $name;
    
    public function setName($name) {
      $this->name = $name;
    }
    public function getName() {
      return $this->name;
    }
  }
?>

Recimo, da od starša deduje naslednji potomec:

php<?php
  class Student extends User {
    
  }
?>

Ustvarimo objekt potomca:

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

Uporabimo metodo starša, da zapišemo njegovo zasebno lastnost:

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

Uporabimo metodo starša, da preberemo njegovo zasebno lastnost:

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

Podan je naslednji razred-starš:

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

Naredite razred Employee, ki bo dedoval od tega starša.

Задание 2

Ustvarite objekt razreda Employee in pokličite podedovane setterje in getterje.

Задание 3

V razredu Employee naredite naslednjo metodo:

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

Prepričajte se, da bo koda metode povzročila napako.