Privé-eigenschappen bij overerving in OOP in PHP

Privé-eigenschappen worden niet overgeërfd. Maar een afstammeling kan ze manipuleren via openbare methodes van de ouder. Laten we dit in de praktijk bekijken. Stel dat we de volgende ouderklasse hebben met een privé-eigenschap en zijn getter en setter:

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

Stel dat van de ouder de volgende afstammeling erft:

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

Laten we een object van de afstammeling maken:

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

Laten we de methode van de ouder gebruiken om zijn privé-eigenschap in te stellen:

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

Laten we de methode van de ouder gebruiken om zijn privé-eigenschap uit te lezen:

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

Gegeven de volgende ouderklasse:

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

Maak een klasse Employee die van deze ouder erft.

Задание 2

Maak een object van de klasse Employee en roep de overgeërfde setters en getters aan.

Задание 3

Maak in de klasse Employee de volgende methode:

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

Zorg ervoor dat de code van de methode tot een fout leidt.