Ghi đè phương thức của lớp cha trong OOP PHP
Lớp con có thể ghi đè phương thức của lớp cha bằng cách tạo một phương thức có cùng tên. Hãy xem ví dụ sau. Giả sử chúng ta có lớp cha sau:
<?php
class User {
private $name;
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
Hãy tạo một phương thức cùng tên trong lớp con:
<?php
class Student extends User {
public function setName($name) {
}
}
?>
Thông thường, việc ghi đè các phương thức của lớp cha là để thay đổi hoặc bổ sung hành vi của phương thức đó. Trong trường hợp của chúng ta, hãy thêm kiểm tra độ dài tên:
<?php
class Student extends User {
public function setName($name) {
if (strlen($name) > 0) {
$this->name = $name;
} else {
echo 'student name error';
}
}
}
?>
Hãy đảm bảo rằng phương thức được gọi chính là phương thức đã ghi đè. Trước tiên, hãy tạo một đối tượng của lớp con:
<?php
$student = new Student;
?>
Bây giờ hãy gọi phương thức của chúng ta, truyền vào một giá trị hợp lệ:
<?php
$student->setName('john');
?>
Và bây giờ hãy gọi phương thức, truyền vào một giá trị không hợp lệ. Kết quả chúng ta sẽ thấy thông báo lỗi được in ra:
<?php
$student->setName(''); // lỗi
?>
Trong lớp User, hãy tạo
getter và setter cho tuổi.
Trong lớp Employee, hãy ghi đè
setter của tuổi và thực hiện trong đó
kiểm tra xem tuổi có nằm trong khoảng từ
18 đến 65 tuổi không.