Construtor na herança em OOP no PHP

Na herança, é possível sobrescrever o construtor da classe pai. Vamos ver um exemplo. Suponha que temos a seguinte classe pai:

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

Suponha que a seguinte classe herda da classe pai:

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

Suponha que queremos estender o construtor na classe filha, adicionando parâmetros adicionais a ele:

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

Neste caso, precisamos obrigatoriamente chamar o construtor da classe pai na primeira linha usando parent::__construct():

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

O comando parent::__construct() é essencialmente o construtor da classe pai. Portanto, vamos passar os parâmetros necessários para ele:

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

Agora, na classe filha, vamos atribuir o ano de ingresso à sua própria propriedade na classe filha:

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

Vamos criar um getter para o ano de ingresso:

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

Suponha que a classe Employee herda da classe User desta lição.

Задание 2

Sobrescreva o construtor da classe pai na classe Employee, adicionando a ele um parâmetro com a idade e o salário.

Задание 3

Crie getters para a idade e o salário.