Giới thiệu
Sử dụng cuối cùng từ khóa trong định nghĩa của một phương thức thể hiện trong một lớp PHP ngăn nó không bị lớp con ghi đè. Tương tự, nếu cuối cùng được sử dụng trong định nghĩa của chính lớp, thì một lớp như vậy không thể được mở rộng.
Cú pháp
final class myclass {} class myclass{ final method mymethod(){} }
ví dụ về phương thức cuối cùng
Trong ví dụ sau, cố gắng ghi đè phương thức cuối cùng dẫn đến lỗi
Ví dụ
<?php class parentclass{ final function test(){ echo "final method in parent class"; } } class childclass extends parentclass{ function test(){ echo "overriding final method in parent class"; } } $obj=new childclass(); $obj->test(); ?>
Đầu ra
Đầu ra hiển thị thông báo lỗi sau
PHP Fatal error: Cannot override final method parentclass::test() in line 16
ví dụ về lớp cuối cùng
Tương tự, một lớp cuối cùng không thể được kế thừa từ như ví dụ sau đây cho thấy
Ví dụ
<?php final class parentclass{ final function test(){ echo "final method in parent class"; } } class childclass extends parentclass{ function test(){ echo "overriding final method in parent class"; } } $obj=new childclass(); $obj->test(); ?>
Đầu ra
Đầu ra hiển thị thông báo lỗi sau
PHP Fatal error: Class childclass may not inherit from final class (parentclass) in line 16