Metodi privati nell'ereditarietà in OOP in PHP

I metodi privati non vengono ereditati. Questo è fatto appositamente per non violare l'incapsulamento. Diamo un'occhiata a un esempio. Supponiamo di avere la seguente classe genitore con un metodo privato:

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

Supponiamo che dalla classe genitore erediti la seguente classe:

php<?php
  class Student extends User {
    private $surn;
    
    public function setSurn($surn) {
      $this->surn = $surn;
    }
    public function getSurn() {
      return $this->surn;
    }
  }
?>

Supponiamo che la classe figlia voglia utilizzare il metodo privato del genitore. PHP non lo permetterà e darà un errore:

php<?php
  class Student extends User {
    private $surn;
    
    public function setSurn($surn) {
      $this->surn = $surn;
    }
    public function getSurn() {
      return $this->capeFirst($this->surn); // darà errore
    }
  }
?>
Задание 1

Provate nella classe Employee a utilizzare il metodo privato del genitore.