Private egenskaper ved arv i OOP i PHP

Private egenskaper arves ikke. Men etterkommeren kan manipulere dem gjennom forelderens offentlige metoder. La oss se på dette i praksis. La oss si at vi har følgende forelderklasse med en privat egenskap og dens getter og setter:

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

La oss si at følgende etterkommer arver fra forelderen:

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

La oss opprette et objekt av etterkommeren:

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

La oss bruke forelderens metode for å skrive til dens private egenskap:

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

La oss bruke forelderens metode for å lese dens private egenskap:

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

Her er følgende forelderklasse:

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

Lag klassen Employee som skal arve fra denne forelderen.

Задание 2

Opprett et objekt av klassen Employee og kall de arvede setterne og getterne.

Задание 3

I klassen Employee, lag følgende metode:

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

Forsikre deg om at koden i metoden fører til en feil.