Constructor bij overerving in OOP in PHP

Bij overerving is het mogelijk om de constructor van de ouder te overschrijven. Laten we een voorbeeld bekijken. Stel dat we de volgende ouderklasse hebben:

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

Stel dat de volgende klasse erven van de ouderklasse:

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

Stel dat we in de nakomelingenklasse de constructor willen uitbreiden door er extra parameters aan toe te voegen:

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

In dit geval moeten we verplicht op de eerste regel de constructor van de ouder aanroepen via parent::__construct():

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

De opdracht parent::__construct() is in feite de constructor van de ouder. Daarom geven we hem de vereiste parameters door:

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

Nu schrijven we in de nakomeling het studiejaar in zijn eigen eigenschap van de nakomeling:

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

Laten we een getter maken voor het studiejaar:

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

Stel dat de klasse Employee erven van de klasse User uit deze les.

Задание 2

Herschrijf in de klasse Employee de constructor van de ouder door er parameters voor leeftijd en salaris aan toe te voegen.

Задание 3

Maak getters voor de leeftijd en het salaris.