Proprietăți private în moștenire în OOP în PHP

Proprietățile private nu sunt moștenite. Dar descendenții le pot manipula prin metodele publice ale părintelui. Să vedem în practică. Să presupunem că avem următorul clasă-părinte cu o proprietate privată și getter-ul și setter-ul ei:

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

Să presupunem că de la părinte moștenește următorul descendent:

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

Să creăm un obiect al descendentului:

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

Să folosim metoda părintelui, pentru a scrie în proprietatea lui privată:

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

Să folosim metoda părintelui, pentru a citi proprietatea lui privată:

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

Este dată următoarea clasă-părinte:

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

Creați clasa Employee, care va moșteni de la acest părinte.

Задание 2

Creați un obiect al clasei Employee și apelați settere-ile și gettere-ile moștenite.

Задание 3

În clasa Employee faceți următoarea metodă:

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

Asigurați-vă că codul metodei va duce la o eroare.