Privaatmetodes by oorerwing in OOP in PHP

Privaatmetodes word nie geërf nie. Dit is doelbewus gedoen om nie inkapsulasie te skend nie. Kom ons kyk na 'n voorbeeld. Gestel ons het die volgende ouerklas met 'n privaatmetode:

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

Gestel die volgende klas erf van die ouerklas:

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

Gestel die nageslag wil die privaatmetode van die ouer gebruik. PHP sal dit nie toelaat nie en sal 'n fout gee:

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

Probeer in die klas Employee om die privaatmetode van die ouer te gebruik.