Konstruktor öröklődéskor OOP-ban PHP-ben

Öröklődéskor felül lehet definiálni a szülő konstruktorát. Nézzünk egy példát. Tegyük fel, hogy a következő szülő osztályunk van:

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

Tegyük fel, hogy a szülő osztálytól a következő osztály örököl:

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

Tegyük fel, hogy az utód osztályban ki szeretnénk bővíteni a konstruktort, hozzáadva további paramétereket:

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

Ebben az esetben kötelezően az első sorban meg kell hívnunk a szülő konstruktorát a parent::__construct() segítségével:

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

A parent::__construct() parancs lényegében a szülő konstruktora. Ezért adjuk át neki a szükséges paramétereket:

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

Most az utódban a tanulmányi évet írjuk az utód saját tulajdonságába:

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

Készítsünk gettert a tanulmányi évhez:

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

Tegyük fel, hogy a Employee osztály örököl a User osztálytól ebből a leckéből.

Задание 2

Definiálja felül a Employee osztályban a szülő konstruktorát, hozzáadva paramétert az életkorral és a fizetéssel.

Задание 3

Készítsen gettereket az életkorhoz és a fizetéshez.