Частни свойства при наследяване в ООП в PHP

Частните свойства не се наследяват. Но потомкът може да манипулира тях чрез публичните методи на родителя. Нека видим на практика. Да предположим, че имаме следния родителски клас с частно свойство и негови гетър и сетър:

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

Да предположим, че от родителя наследява следния потомък:

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

Нека създадем обект от потомъка:

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

Нека използваме метода на родителя, за да запишем неговото частно свойство:

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

Нека използваме метода на родителя, за да прочетем неговото частно свойство:

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

Даден е следният родителски клас:

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

Направете клас Employee, който ще наследява от този родител.

Задание 2

Създайте обект от клас Employee и извикайте наследените сетъри и гетъри.

Задание 3

В клас Employee направете следния метод:

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

Уверете се, че кодът на метода ще доведе до грешка.