Konstruktor ved arv i OOP i PHP

Ved arv kan man overskrive forældrekonsruktøren. Lad os se et eksempel. Antag at vi har følgende forældreklasse:

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

Antag at følgende klasse arver fra forældreklassen:

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

Antag at vi i barnklassen ønsker at udvide konstruktøren ved at tilføje yderligere parametre:

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

I dette tilfælde er vi nødt til at kalde forældrekonsruktøren via parent::__construct() som den første linje:

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

Kommandoen parent::__construct() er i virkeligheden forældrekonsruktøren. Så lad os sende de nødvendige parametre til den:

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

Lad os nu i barnklassen indsætte studieåret i barnklassens egen egenskab:

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

Lad os lave en getter for studieåret:

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

Antag at klassen Employee arver fra klassen User fra denne lektion.

Задание 2

Overskriv i klassen Employee forældrekonsruktøren, og tilføj til den parametre for alder og løn.

Задание 3

Lav getters for alder og lon.