Aufruf einer überschriebenen Methode in OOP in PHP

Beim Überschreiben verliert das Kind den Zugriff auf die überschriebene Methode des Elternteils. Dennoch kann man weiterhin darauf zugreifen. Dies geschieht mit dem Schlüsselwort parent, das auf die Elternklasse verweist.

Schauen wir uns ein Beispiel an, bei dem wir Zugriff auf die Elternmethode benötigen könnten. Angenommen, wir haben die folgende Elternklasse:

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

Angenommen, wir haben in der Kinderklasse die Methode des Elternteils überschrieben:

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

Man kann feststellen, dass im überschriebenen Methode bei Erfüllung der Bedingung praktisch der Code der Elternmethode ausgeführt wird. Es ergibt sich eine unnötige Code-Duplikation.

Man kann sie vermeiden, indem man die Methode des Elternteils aufruft. Tun wir das:

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

Gegeben ist der folgende Code:

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 der Klasse Employee korrigieren Sie den Setter für das Alter, vereinfachen Sie ihn, indem Sie die ursprüngliche Methode des Elternteils verwenden.