Vetitë private në trashëgiminë në OOP në PHP

Vetitë private nuk trashëgohen. Por pasardhësi mund t'i manipullojë ato përmes metodave publike të prindit. Le të shohim në praktikë. Le të themi se kemi klasën e mëposhtme prind me një pronë private dhe getter dhe setter të saj:

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

Le të themi se nga prindi trashëgon pasardhësi i mëposhtëm:

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

Le të krijojmë një objekt të pasardhësit:

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

Le të përdorim metodën e prindit për të regjistruar pronën e tij private:

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

Le të përdorim metodën e prindit për të lexuar pronën e tij private:

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

Jepet klasa e mëposhtme prind:

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

Krijoni klasën Employee, e cila do të trashëgojë nga ky prind.

Задание 2

Krijoni një objekt të klasës Employee dhe thirrni setters dhe getters të trashëguar.

Задание 3

Në klasën Employee bëni metodën e mëposhtme:

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

Sigurohuni që kodi i metodës do të çojë në gabim.