Privát tulajdonságok öröklődéskor az OOP-ban PHP-ben

A privát tulajdonságok nem öröklődnek. De az utód manipulálhatja azokat a szülő publikus metódusain keresztül. Nézzük meg a gyakorlatban. Tegyük fel, hogy van a következő szülő osztályunk privát tulajdonsággal és annak getter és setter metódusaival:

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

Tegyük fel, hogy a szülőtől örököl a következő utód:

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

Hozzunk létre egy utód objektumot:

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

Használjuk a szülő metódusát, hogy beállítsuk annak privát tulajdonságát:

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

Használjuk a szülő metódusát, hogy olvassuk ki annak privát tulajdonságát:

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

Adott a következő szülő osztály:

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

Készítsen egy Employee osztályt, ami örököl ettől a szülőtől.

Задание 2

Hozzon létre egy objektumot a Employee osztályból és hívja meg az örökölt setter és getter metódusokat.

Задание 3

A Employee osztályban készítse el a következő metódust:

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

Győződjön meg róla, hogy a metódus kódja hibához vezet.