Privata egenskaper vid arv i OOP i PHP

Privata egenskaper ärvs inte. Men ett barn kan manipulera dem genom förälderns publika metoder. Låt oss se hur det fungerar i praktiken. Anta att vi har följande förälderklass med en privat egenskap och dess getter och setter:

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

Anta att följande barnklass ärver från föräldern:

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

Låt oss skapa ett objekt av barnklassen:

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

Låt oss använda förälderns metod för att skriva till dess privata egenskap:

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

Låt oss använda förälderns metod för att läsa dess privata egenskap:

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

Följande förälderklass ges:

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

Skapa klassen Employee som ska ärva från denna förälder.

Задание 2

Skapa ett objekt av klassen Employee och använd de ärvda setters och getters.

Задание 3

Gör följande metod i klassen Employee:

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

Se till att koden i metoden leder till ett fel.