Abstract class chứa ít nhất một phương thức abstract (chỉ khai báo, không body). Không thể khởi tạo trực tiếp. Lớp con bắt buộc triển khai tất cả phương thức abstract.
Đặc điểm chính
- Có thể có method abstract và non-abstract.
- Không khởi tạo được:
new AbstractClass()-> Fatal Error. - Visibility khi override: Method con phải cùng hoặc rộng hơn (public > protected > private).
- Method abstract không được có body.
- Chứa method abstract => phải khai báo abstract class.
- Không hỗ trợ đa kế thừa (extends 1 class cha).
Ví dụ
<?php
abstract class Base {
abstract public function printData();
public function getData() { echo "Tutorials Point"; }
}
class Child extends Base {
public function printData() { echo "Good morning"; }
}
$obj = new Child();
$obj->getData(); // Tutorials Point
?>
Lưu ý
- Abstract class có thể extends abstract class khác.
- Abstract class có thể implements interface.