Propriedades privadas na herança em POO em PHP

Propriedades privadas não são herdadas. Mas a classe filha pode manipulá-las através dos métodos públicos da classe pai. Vamos ver na prática. Suponha que temos a seguinte classe pai com uma propriedade privada e seus getter e setter:

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

Suponha que a seguinte classe filha herda da classe pai:

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

Vamos criar um objeto da classe filha:

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

Vamos usar o método da classe pai para definir sua propriedade privada:

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

Vamos usar o método da classe pai para ler sua propriedade privada:

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

Dada a seguinte classe pai:

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

Faça a classe Employee, que irá herdar deste pai.

Задание 2

Crie um objeto da classe Employee e chame os setters e getters herdados.

Задание 3

Na classe Employee, faça o seguinte método:

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

Certifique-se de que o código do método levará a um erro.