Sự khác nhau giữa Interface và Abstract Class mà bạn cần phải biết

Abstract Class vs Interface trong OOP
Abstract Class vs Interface trong OOP

1. Interface

  • Mục đích: Giao diện hoạt động như một “bảng hợp đồng”, bắt buộc các lớp kế thừa phải thực hiện các phương thức được định nghĩa trong giao diện.
  • Sử dụng: Thích hợp cho các tình huống khi các hành động (phương thức) giữa các lớp không có logic chung cần chia sẻ. Các lớp có thể có các phương thức thực hiện khác nhau cho cùng một hành động mà không cần phụ thuộc vào logic của nhau.

2. Abstract Class

  • Mục đích: Lớp trừu tượng cung cấp một nền tảng cho các lớp con kế thừa, bao gồm cả việc định nghĩa các phương thức trừu tượng mà các lớp con phải cài đặt.
  • Sử dụng: Thích hợp khi bạn cần chia sẻ logic hoặc thuộc tính chung giữa các lớp. Bạn có thể định nghĩa các phương thức với logic mặc định và các phương thức trừu tượng mà các lớp con phải thực hiện.

Kết luận

  • Interface: Được sử dụng để đảm bảo rằng các lớp khác nhau thực hiện các hành động tương tự mà không chia sẻ logic.
  • Abstract Class: Được sử dụng để cung cấp một cấu trúc chung với khả năng chia sẻ logic giữa các lớp con.