Constructor en herencia en POO en PHP

En la herencia se puede sobrescribir el constructor del padre. Veamos un ejemplo. Supongamos que tenemos la siguiente clase padre:

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

Supongamos que de la clase padre hereda la siguiente clase:

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

Supongamos que queremos en la clase hija ampliar el constructor, añadiendo parámetros adicionales:

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

En este caso necesitamos obligatoriamente llamar en la primera línea al constructor del padre mediante parent::__construct():

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

El comando parent::__construct() en esencia es el constructor del padre. Por lo tanto pasemos a él los parámetros requeridos:

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

Ahora en el hijo el año de estudio lo escribimos en su propia propiedad del hijo:

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

Hagamos un getter para el año de estudio:

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

Supongamos que la clase Employee hereda de la clase User de esta lección.

Задание 2

Sobrescriba en la clase Employee el constructor del padre, añadiéndole parámetros con la edad y el salario.

Задание 3

Haga getters para la edad y el salario.