Overriding Metode Parent dalam OOP di PHP

Kelas turunan dapat mengoverride metode parent dengan membuat metode dengan nama yang sama. Mari kita lihat contohnya. Misalkan kita memiliki kelas parent berikut:

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

Mari kita buat metode dengan nama yang sama dalam kelas turunan:

php<?php
  class Student extends User {
    public function setName($name) {
      
    }
  }
?>

Biasanya, override metode parent diperlukan untuk mengubah atau menambah perilaku metode tersebut. Mari dalam kasus kita tambahkan pemeriksaan panjang nama:

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

Mari pastikan bahwa yang dipanggil adalah metode yang dioverride. Pertama, mari buat objek kelas turunan:

php<?php
  $student = new Student;
?>

Sekarang panggil metode kita, dengan memberikan nilai yang benar:

php<?php
  $student->setName('john');
?>

Lalu panggil metode, dengan memberikan nilai yang tidak benar. Hasilnya kita akan melihat pengecualian yang dikeluarkan:

php<?php
  $student->setName(''); // error
?>
Задание 1

Di kelas User buatlah getter dan setter untuk usia.

Задание 2

Di kelas Employee override setter usia dan buat di dalamnya pengecekan bahwa usia dari 18 hingga 65 tahun.