Yksityiset ominaisuudet perinnässä OOP:ssa PHP:ssä

Yksityisiä ominaisuuksia ei periydy. Mutta lapsiluokka voi manipuloida niillä vanhemman julkisten metodien kautta. Katsotaanpa käytännössä. Oletetaan, että meillä on seuraava vanhempiluokka yksityisellä ominaisuudella ja sen getterillä ja setterillä:

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

Oletetaan, että vanhemmasta perii seuraava lapsiluokka:

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

Luodaan lapsiluokan olio:

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

Hyödynnetään vanhemman metodia kirjoittaaksesi sen yksityisen ominaisuuden:

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

Hyödynnetään vanhemman metodia lukeaksemme sen yksityisen ominaisuuden:

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

Annettu on seuraava vanhempiluokka:

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

Tee luokka Employee, joka perii tästä vanhemmasta.

Задание 2

Luo luokan Employee olio ja kutsu perittyjä settereitä ja gettereitä.

Задание 3

Tee luokassa Employee seuraava metodi:

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

Varmista, että metodin koodi johtaa virheeseen.