- Cho phép thay đổi hành vi của hàm hoặc phương thức
- Tạo đối tượng từ phương thức
- Là một dạng của cấu trúc dữ liệu
- Là một dạng của class method