Privātās īpašības mantojumā OOP PHP

Privātās īpašības nemanto. Bet pēctecis var manipulēt ar tām caur vecāka publiskajām metodēm. Apskatīsim to praksē. Pieņemsim, ka mums ir šāda vecāku klase ar privātu īpašību un tās getter un setter:

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

Pieņemsim, ka no vecāka manto šāds pēctecis:

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

Izveidosim pēcteča objektu:

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

Izmantosim vecāka metodi, lai ierakstītu tā privāto īpašību:

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

Izmantosim vecāka metodi, lai nolasītu tā privāto īpašību:

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

Dota šāda vecāku klase:

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

Izveidojiet klasi Employee, kura manto no šī vecāka.

Задание 2

Izveidojiet klases Employee objektu un izsauciet mantotās setter un getter metodes.

Задание 3

Klasē Employee izveidojiet šādu metodi:

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

Pārliecinieties, ka metodes kods novedīs pie kļūdas.