Private metoder ved arv i OOP i PHP

Private metoder arves ikke. Dette er gjort med vilje for ikke at overtræde inkapsling. Lad os se på et eksempel. Lad os sige, at vi har følgende forældreklasse med en privat metode:

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

Lad følgende klasse arve fra forældreklassen:

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

Lad barnet vil bruge forælderens private metode. PHP tillader dette ikke og vil give en fejl:

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

Prøv i klassen Employee at bruge forælderens private metode.