Konstruktor pri dedovanju v OOP v PHP

Pri dedovanju je mogoče preglasiti konstruktor starša. Poglejmo si primer. Imejmo naslednji razred starša:

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

Naj od starševskega razreda deduje naslednji razred:

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

Recimo, da želimo v razredu-potomcu razširiti konstruktor z dodajanjem dodatnih parametrov:

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

V tem primeru moramo obvezno v prvi vrstici poklicati konstruktor starša z parent::__construct():

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

Ukaz parent::__construct() je v bistvu konstruktor starša. Zato mu posredujemo zahtevane parametre:

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

Sedaj v potomcu leto študija zapišimo v lastno lastnost potomca:

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

Naredimo getter za leto študija:

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

Naj razred Employee deduje od razreda User iz te lekcije.

Задание 2

Preglasite v razredu Employee konstruktor starša, tako da mu dodate parameter s starostjo in plačo.

Задание 3

Naredite getterje za starost in plačo.