Prywatne właściwości przy dziedziczeniu w OOP w PHP

Prywatne właściwości nie są dziedziczone. Ale potomek może manipulować nimi poprzez publiczne metody rodzica. Spójrzmy na to w praktyce. Załóżmy, że mamy następującą klasę rodzica z właściwością prywatną oraz jej getterem i setterem:

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

Załóżmy, że od rodzica dziedziczy następujący potomek:

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

Stwórzmy obiekt potomka:

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

Wykorzystajmy metodę rodzica, aby zapisać jego prywatną właściwość:

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

Wykorzystajmy metodę rodzica, aby odczytać jego prywatną właściwość:

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

Dana jest następująca klasa-rodzic:

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

Stwórz klasę Employee, która będzie dziedziczyć od tego rodzica.

Задание 2

Stwórz obiekt klasy Employee i wywołaj odziedziczone settery i gettery.

Задание 3

W klasie Employee stwórz następującą metodę:

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

Upewnij się, że kod metody prowadzi do błędu.