Konstruktor przy dziedziczeniu w OOP w PHP

Przy dziedziczeniu można przesłaniać konstruktor rodzica. Spójrzmy na przykład. Załóżmy, że mamy następującą klasę rodzica:

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

Załóżmy, że z klasy rodzica dziedziczy następująca klasa:

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

Załóżmy, że chcemy w klasie-potomku rozszerzyć konstruktor, dodając do niego dodatkowe parametry:

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

W tym przypadku musimy koniecznie w pierwszej linii wywołać konstruktor rodzica za pomocą parent::__construct():

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

Polecenie parent::__construct() w istocie jest konstruktorem rodzica. Dlatego przekażmy do niego wymagane parametry:

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

Teraz w potomku rok nauki zapiszmy we własnej właściwości potomka:

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

Zróbmy getter dla roku nauki:

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

Załóżmy, że klasa Employee dziedziczy z klasy User z tej lekcji.

Задание 2

Przesłoń w klasie Employee konstruktor rodzica, dodając do niego parametr z wiekiem i wynagrodzeniem.

Задание 3

Zrób gettery dla wieku i wynagrodzenia.