Konstruktori në Trashëgimi në OOP në PHP

Gjatë trashëgimisë, mund të rishkruani konstruktorin e prindit. Le të shohim në një shembull. Le të themi se kemi këtë klasë prind:

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

Le të themi se nga klasa prind trashëgohet kjo klasë:

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

Le të themi se në klasën e fëmijës duam të zgjerojmë konstruktorin, duke shtuar parametra shtesë:

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

Në këtë rast, ne domosdoshmërisht duhet që në rreshtin e parë të thirrim konstruktorin e prindit përmes parent::__construct():

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

Komanda parent::__construct() në thelb është konstruktori i prindit. Prandaj le t'i kalojmë atij parametrat e kërkuar:

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

Tani në fëmijë, vitin e studimit do ta shkruajmë në vetinë e vet të fëmijës:

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

Le të bëjmë një getter për vitin e studimit:

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

Le të themi se klasa Employee trashëgon nga klasa User nga ky mësim.

Задание 2

Rishkruani në klasën Employee konstruktorin e prindit, duke shtuar në të parametra për moshën dhe pagën.

Задание 3

Bëni getter për moshën dhe pagën.