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
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
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
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
$student = new Student;
?>
Sekarang panggil metode kita, dengan memberikan nilai yang benar:
<?php
$student->setName('john');
?>
Lalu panggil metode, dengan memberikan nilai yang tidak benar. Hasilnya kita akan melihat pengecualian yang dikeluarkan:
<?php
$student->setName(''); // error
?>
Di kelas User buatlah
getter dan setter untuk usia.
Di kelas Employee override
setter usia dan buat di dalamnya
pengecekan bahwa usia dari
18 hingga 65 tahun.