Privaatsed omadused pärimisel OOP-s PHP-s

Privaatseid omadusi ei pärita. Kuid järglane saab nendega manipuleerida läbi vanema avalike meetodite. Vaatame seda praktikas. Olgu meil järgmine vanemaklass privaatse omaduse ja selle getteri ja setteriga:

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

Olgu vanemast päritud järgmine järglane:

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

Loome järglase objekti:

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

Kasutame vanema meetodit, et kirjutada selle privaatne omadus:

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

Kasutame vanema meetodit, et lugeda selle privaatne omadus:

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

Antud on järgmine vanemaklass:

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

Tehke klass Employee, mis pärineb sellelt vanemalt.

Задание 2

Looge klassi Employee objekt ja kutsuge päritud setterid ja getterid.

Задание 3

Klassis Employee tehke järgmine meetod:

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

Veenduge, et meetodi kood viib veani.