Կոնստրուկտորը ժառանգման ժամանակ OOP-ում PHP-ում

Ժառանգման ժամանակ կարելի է վերասահմանել ծնողի կոնստրուկտորը: Եկեք նայենք օրինակով: Ենթադրենք ունենք հետևյալ ծնողի դասը:

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

Ենթադրենք ծնողական դասից ժառանգում է հետևյալ դասը.

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

Ենթադրենք մենք ցանկանում ենք ժառանգ դասում ընդլայնել կոնստրուկտորը՝ ավելացնելով դրան լրացուցիչ պարամետրեր.

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

Այս դեպքում մենք պարտավոր ենք առաջին տողով կանչել ծնողի կոնստրուկտորը parent::__construct() միջոցով.

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

parent::__construct() հրամանը ըստ էության ծնողի կոնստրուկտորն է: Ուստի եկեք նրան փոխանցենք պահանջվող պարամետրերը.

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

Այժմ ժառանգում ուսման տարին գրենք ժառանգի սեփական հատկության մեջ.

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

Եկեք ստեղծենք գետտեր ուսման տարվա համար.

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

Ենթադրենք Employee դասը ժառանգում է այս դասի User դասից:

Задание 2

Վերասահմանեք Employee դասում ծնողի կոնստրուկտորը՝ ավելացնելով դրան պարամետրեր տարիքով և աշխատավարձով:

Задание 3

Ստեղծեք գետտերներ տարիքի և աշխատավարձի համար: