OOP da PHP da qayta belgilangan metodni chaqirish

Qayta belgilashda voris ota-onaning qayta belgilangan metodiga kirish huquqini yo'qotadi. Biroq, unga kirish hali ham mumkin. Bunga parent kalit so'zi orqali erishish mumkin, bu ota-ona sinfini ko'rsatadi.

Keling, ota-ona metodiga kirish qachon kerak bo'lishi mumkinligini misolda ko'ramiz. Faraz qilaylik, bizda quyidagi ota-ona sinfi mavjud:

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

Faraz qilaylik, voris sinfda ota-ona metodini qayta belgiladik:

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

E'tibor bering, qayta belgilangan metodda shart bajarilganda aslida ota-ona metodining kodi bajariladi. Bu keraksiz kod takrorlashiga olib keladi.

Bundan ota-ona metodini chaqirish orqali xalos bo'lish mumkin. Buni amalga oshiramiz:

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

Quyidagi kod berilgan:

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

Employee sinfida yosh setterini soddalashtiring, ota-onaning original metodidan foydalangan holda.