Konstruktor pärimisel OOP-s PHP-s

Pärimisel on võimalik ümber määrata vanema konstruktorit. Vaatame seda näite abil. Olgu meil järgmine vanema klass:

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

Olgu vanemaklassist pärib järgmine klass:

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

Oletame, et soovime järglasklassis laiendada konstruktorit, lisades sellesse täiendavaid parameetreid:

php<?php
  class Student extends User {
    private $year;
    
    public function __construct($name, $surn, $year) {
      
    }
  }
?>

Sellisel juhul peime ⁅kohustuslikult⁆ esimesel real kutsuma välja vanema konstruktori käsuga parent::__construct():

php<?php
  class Student extends User {
    private $year;
    
    public function __construct($name, $surn, $year) {
      parent::__construct($name, $surn);
    }
  }
?>

Käsk parent::__construct() on olemuselt vanema konstruktor. Seega edastame sellele nõutud parameetrid:

php<?php
  class Student extends User {
    private $year;
    
    public function __construct($name, $surn, $year) {
      parent::__construct($name, $surn);
    }
  }
?>

Nüüd kirjutame järglases õppeaasta järglase enda omadusse:

php<?php
  class Student extends User {
    private $year;
    
    public function __construct($name, $surn, $year) {
      parent::__construct($name, $surn);
      $this->year = $year;
    }
  }
?>

Teeme getteri õppeaasta jaoks:

php<?php
  class Student extends User {
    private $year;
    
    public function __construct($name, $surn, $year) {
      parent::__construct($name, $surn);
      $this->year = $year;
    }
    
    public function getYear() {
      return $this->year;
    }
  }
?>
Задание 1

Olgu klass Employee pärib klassist User sellest õppetükist.

Задание 2

Määrake klassis Employee ümber vanema konstruktor, lisades sellesse parameetri vanuse ja palgaga.

Задание 3

Tehke getterid vanuse ja palga jaoks.