Abstract class là class không đầy đủ, không thể khởi tạo trực tiếp — chỉ có thể kế thừa.
Subclass bắt buộc phải triển khai abstract method:
php
abstract class Animal {
abstract public function sound();
}
class Dog extends Animal {
public function sound() {
return "Woof";
}
}Khác interface, abstract class có thể chứa sẵn method cụ thể và thuộc tính.
Dùng khi muốn áp đặt cấu trúc nhưng vẫn cho sẵn một phần implementation: interface cho contract thuần tuý, abstract class cho phần chức năng cơ sở dùng chung.