Конструктор при наследовање во ООП во PHP

При наследување може да се преименува конструкторот на родителот. Ајде да погледнеме на пример. Нека имаме следнава класа на родителот:

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

Нека од родителската класа наследува следнава класа:

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

Нека сакаме во класата-потомок да го прошириме конструкторот, додавајќи во него дополнителни параметри:

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

Во овој случај неопходно е првиот ред да го повикаме конструкторот на родителот преку parent::__construct():

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

Командата parent::__construct() во суштина е конструктор на родителот. Затоа ќе ги пренесеме во него потребните параметри:

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

Сега во потомокот годината на студии ќе ја запишеме во својство на потомокот:

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

Да направиме гетер за годината на студии:

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

Нека класата Employee наследува од класата User од оваа лекција.

Задание 2

Преименувајте во класата Employee конструкторот на родителот, додавајќи во него параметар со возраста и платата.

Задание 3

Направете гетери за возраста и платата.