Konstruktor irsda OOP-də PHP-də

Irs alanda valideynin konstruktorunu yenidən təyin edə bilərsiniz. Gəlin bir nümunəyə baxaq. Tutaq ki, aşağıdakı valideyn sinfimiz var:

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

Tutaq ki, valideyn sinfindən aşağıdakı sinif miras alır:

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

Tutaq ki, biz mirasçı sinifdə konstruktoru əlavə parametrlər əlavə etməklə genişləndirmək istəyirik:

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

Bu halda, biz mütləq ilk sətirdə valideynin konstruktorunu parent::__construct() vasitəsilə çağırmalıyıq:

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

parent::__construct() əmri mahiyyət etibarilə valideynin konstruktorudur. Buna görə də ona tələb olunan parametrləri ötürək:

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

İndi mirasçıda təhsil ilini mirasçının öz xüsusiyyətinə yazaq:

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

Təhsil ili üçün getter edək:

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

Tutaq ki, Employee sinfi bu dərsdəki User sinfindən miras alır.

Задание 2

Employee sinfində valideyn konstruktorunu yaş və maaş parametri əlavə etməklə yenidən təyin edin.

Задание 3

Yaş və maaş üçün getterlər edin.