Privata metoder vid arv i OOP i PHP

Privata metoder ärvs inte. Detta är gjort med flit för att inte bryta mot inkapsling. Låt oss titta på ett exempel. Antag att vi har följande föräldraklass med en privat metod:

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

Antag att följande klass ärver från föräldraklassen:

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

Om avkomman vill använda förälderns privata metod, kommer PHP inte tillåta detta och kommer att ge ett fel:

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

Försök i klassen Employee att använda en privat metod från föräldern.