Konstruktorius paveldėjime OOP PHP

Paveldėjimo metu galima perrašyti tėvinį konstruktorių. Pažiūrėkime pavyzdžiu. Tarkime, kad turime tokį tėvinę klasę:

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

Tarkime, kad iš tėvinės klasės paveldi ši klasė:

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

Tarkime, kad norime įvesties klasėje išplėsti konstruktorių, pridėdami jame papildomus parametrus:

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

Šiuo atveju mes privalome pirmoje eilutėje iškviesti tėvinį konstruktorių per parent::__construct():

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

Komanda parent::__construct() iš esmės yra tėvinis konstruktorius. Todėl perduokime į jį reikiamus parametrus:

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

Dabar įvestyje mokslo metus įrašykime į savo įvesties savybę:

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

Sukurkime getterį mokslo metams:

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

Tarkime, klasė Employee paveldi iš klasės User iš šios pamokos.

Задание 2

Perrašykite klasėje Employee tėvinį konstruktorių, pridėdami į jį parametrą su amžiumi ir atlyginimu.

Задание 3

Sukurkite getterius amžiui ir atlyginimui.