interface trong c# là gì

Bài viết này sẽ cùng bạn tìm hiểu về interface trong C# là gì. Hãy cũng mình tìm hiểu về nó nhé.

Interface là gì?

Interface gần như là một lớp (class). Nó chỉ có những phương thức và thuộc tính trừu tượng. Một interface được hiểu như là 1 khuôn mẫu mà mọi lớp thực thi nó đều phải tuân theo. Interface là một kỹ thuật giúp thu được tính trừu tượng hoàn toàn và đa kế thừa trong lập trình C#. Interface nó chỉ định nghĩa các hành động, khả năng cần thiết ví dụ như:

  • Khả năng bay: cần các hành động hỗ trợ như cất cánh, bay, hạ cánh.
  • Khả năng đọc file: đọc header file, đọc dữ liệu, giải nén file.
  • Khả năng kết nối: cần mở kết nối, gửi nhận dữ liệu, xác nhận kết nối, đóng kết nối.

Các đặc điểm, tính chất của interface

Interface có những đặc điểm, tính chất riêng của nó, dưới đây là một số tính chất nổi bật:

  • Một interface có thể kế thừa nhiều interface khác nhưng nó không thể kế thừa bất kỳ lớp nào.
  • Chỉ chứa khai báo không chứa phần định nghĩa (giống với phương thức thuần ảo). Mặc dù giống phương thức thuần ảo nhưng bạn không cần phải khai báo từ khoá abstract.
  • Việc ghi đè 1 thành phần ở trong interface cũng không cần từ khoá override.
  • Không thể khai báo phạm vi truy cập cho các thành phần bên trong interface. Các thành phần này sẽ mặc định là public.
  • Interface không chứa các thuộc tính (các biến) dù là hằng số hay là biến tĩnh cũng không được.
  • Interface không có constructor và cũng không có destructor.
  • Các lớp có thể thực thi nhiều interface cùng lúc.
  • Một class thì người dùng implement được nhiều interface
  • Không phải là một đối tượng.

Mục đích sử dụng của interface

Việc sử dụng interface sẽ mang lại nhiều lợi ích thiết thực cho người dùng, cụ thể như sau:

  • Việc sử dụng interface giúp định nghĩa về sự tương tác giữa người sử dụng và phần mềm.
  • Interface được sử dụng như giao diện với bên ngoài được các abstract class hỗ trợ. Sản phẩm này sinh ra để phục vụ cho sự tương tác này một cách tốt hơn.
  • Một abstract class sử dụng để thực thi một interface. Do đó, các phương thức người dùng sẽ khai bảo bởi interface phải hiển thị trong cùng lớp để quá trình biên dịch được hiệu quả.
  • Dù thực thi được nhiều giao diện khi dùng như 1 lớp interface chỉ kế thừa được từ 1 lớp khác.

Khi nào bạn nên sử dụng interface hay abstract class?

  1. Interface đại diện cho mối quan hệ “like – A” (Ô tô có thể chuyển động).
  2. Class abstract đại diện cho mối quan hệ “IS – A” (Ôtô là Xe)
  3. Tạo một class abstract khi bạn đang cần cung cấp những hướng dẫn cho một class cụ thể.
  4. Tạo một Interface khi bạn cần cung cấp những hành vi bổ sung cho class cụ thể và những hành vì này không bắt buộc đối với class đó.
phân biệt interface và abstract class
phân biệt interface và abstract class

Bảng so sánh giữa interface và lớp trừu tượng

Các điểm khác biệt chung nhất giữa hai khái niệm interface và lớp trừu tượng(abstract class). Những điểm khác biệt này có thể khác nhau tùy theo ngôn ngữ mà bạn sử dụng. Những điểm căn bản như sau:

InterfaceAbstract class
Multiple inheritanceMột class có thể hiện thực nhiều interface.(tạm coi là thừa kế)Không hỗ trợ đa thừa kế
Default implementationKhông thể định nghĩa code xử lý, chỉ có thể khai báo.Có thể định nghĩa thân phương thức, property.
Access ModifiersMọi phương thức, property đều mặc định là public.Có thể xác định modifier.
Adding functionalityMọi phương thức, property của interface cần được hiện thực trong class.Không cần thiết.
Fields and ConstantsKhông

 

 

Leave a Reply