Oproep van 'n oorgeskrewe metode in OOP in PHP

Met oorskrywing verloor die nakomeling toegang tot die oorgeskrewe metode van die ouer. Tog is dit steeds moontlik om toegang daartoe te verkry. Dit word gedoen met die sleutelwoord parent, wat na die ouerklas verwys.

Kom ons kyk na 'n voorbeeld wanneer ons toegang tot die ouermetode mag benodig. Gestel ons het die volgende ouerklas:

php<?php
  class User {
    private $name;
    
    public function setName($name) {
      $this->name = $name;
    }
    public function getName() {
      return $this->name;
    }
  }
?>

Gestel ons het die metode van die ouer in die nakomelingklas oorgeskryf:

php<?php
  class Student extends User {
    public function setName($name) {
      if (strlen($name) > 0) {
        $this->name = $name;
      } else {
        echo 'student name error';
      }
    }
  }
?>

Dit kan opgemerk word dat in die oorgeskrewe metode, wanneer die voorwaarde vervul word, dit in werklikheid die kode van die ouermetode uitvoer. Dit lei tot onnodige duplikasie van kode.

Dit kan vermy word deur die ouermetode aan te roep. Kom ons doen dit:

php<?php
  class Student extends User {
    public function setName($name) {
      if (strlen($name) > 0) {
        parent::setName($name); // ouermetode
      } else {
        echo 'student name error';
      }
    }
  }
?>
Задание 1

Die volgende kode word gegee:

php<?php
  class User {
    private $age;
    
    public function setAge($age) {
      if ($age >= 0) {
        $this->age = $age;
      } else {
        echo 'need age more 0';
      }
    }
  }
  
  class Employee extends User {
    public function setAge($age) {
      if ($age <= 120) {
        if ($age >= 0) {
          $this->age = $age;
        } else {
          echo 'need age more 0';
        }
      } else {
        echo 'need age less 120';
      }
    }
  }
?>

In die klas Employee, reg vereenvoudig die leeftyd-setter deur die oorspronklike metode van die ouer te gebruik.