Ιδιωτικές Ιδιότητες κατά την Κληρονομικότητα στην OOP στην PHP

Οι ιδιωτικές ιδιότητες δεν κληρονομούνται. Αλλά ένας απόγονος μπορεί να τις χειριστεί μέσω των δημόσιων μεθόδων του γονέα. Ας δούμε πώς λειτουργεί αυτό στην πράξη. Ας υποθέσουμε ότι έχουμε την ακόλουθη γονική κλάση με μια ιδιωτική ιδιότητα και τους getters και setters της:

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 και καλέστε τους κληρονομημένους setters και getters.

Задание 3

Στην κλάση Employee δημιουργήστε την ακόλουθη μέθοδο:

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

Βεβαιωθείτε ότι ο κώδικας της μεθόδου οδηγεί σε σφάλμα.