Konštruktor pri dedení v OOP v PHP

Pri dedení je možné prepísať konštruktor rodiča. Pozrime sa na príklad. Predpokladajme, že máme nasledujúcu triedu rodič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;
    }
  }
?>

Predpokladajme, že z rodičovskej triedy dedí nasledujúca trieda:

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

Predpokladajme, že v triede-potomkovi chceme rozšíriť konštruktor pridaním ďalších parametrov:

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

V tomto prípade musíme v prvom riadku vyvolať konštruktor rodiča pomocou parent::__construct():

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

Príkaz parent::__construct() je v podstate konštruktorom rodiča. Preto do neho odovzdajme požadované parametre:

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

Teraz v potomkovi zapíšme rok štúdia do vlastnej vlastnosti potomka:

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

Vytvorme getter pre rok štúdia:

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

Nech trieda Employee dedí od triedy User z tejto lekcie.

Задание 2

Prepíšte v triede Employee konštruktor rodiča pridaním parametrov s vekom a platom.

Задание 3

Vytvorte gettre pre vek a plat.