Konstruktors mantojumā OOP PHP

Mantojot var pārrakstīt vecāka konstruktoru. Apskatīsim piemērā. Pieņemsim, ka mums ir šāds vecāka klase:

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

Pieņemsim, ka no vecāka klases manto šāda klase:

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

Pieņemsim, ka mēs gribam bērna klasē paplašināt konstruktoru, pievienojot tam papildu parametrus:

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

Šajā gadījumā mums obligāti jāizsauc vecāka konstruktors, izmantojot parent::__construct() kā pirmo rindu:

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

Komanda parent::__construct() būtībā ir vecāka konstruktors. Tāpēc padodam tajā nepieciešamos parametrus:

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

Tagad bērna klasē mācību gadu ierakstām bērna paša īpašumā:

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

Izveidosim getteri mācību gadam:

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

Pieņemsim, ka klase Employee manto no klases User no šīs nodarbības.

Задание 2

Pārrakstiet klasē Employee vecāka konstruktoru, pievienojot tam parametru ar vecumu un algu.

Задание 3

Izveidojiet getterus vecumam un algai.