Kisanja wakati wa urithi katika OOP katika PHP

Wakati wa urithi unaweza kubadilisha kisanja cha mzazi. Hebu tuangalie kwa mfano. Hebu tuchukulie tuna darasa la mzazi lifuatalo:

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

Hebu tuchukulie darasa lifuatalo linairithi kutoka kwa darasa la mzazi:

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

Hebu tuchukulie tunataka katika darasa la mzao kupanua kisanja, tukiongeza vigezo vya ziada ndani yake:

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

Katika hali hii ni lazima mstari wa kwanza uitaje kisanja cha mzazi kupitia parent::__construct():

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

Amri parent::__construct() kimsingi ni kisanja cha mzazi. Kwa hivyo tupitishe parameta zinazohitajika ndani yake:

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

Sasa katika mzao mwaka wa masomo tuandike katika sifa yake mwenyewe ya mzao:

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

Tufanye getter kwa mwaka wa masomo:

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

Hebu tuchukulie darasa Employee linairithi kutoka kwa darasa User kutoka kwenye somo hili.

Задание 2

Badilisha katika darasa Employee kisanja cha mzazi, ukiongeza kigezo cha umri na mshahara.

Задание 3

Fanya getter kwa umri na mshahara.