Lập trình hướng đối tượng C#

Interface và tính trừu tượng trong C#

Trong bài học này, bạn sẽ định nghĩa một interface mô tả khả năng của đối tượng và cài đặt interface đó trong một class.

Giới thiệu

Interface mô tả những gì một đối tượng có thể làm, ví dụ có thể gửi thông báo, mà không quy định cách đối tượng lưu dữ liệu hay kế thừa từ đâu. Nhiều class không liên quan đến nhau vẫn có thể cùng cài đặt một interface. Theo quy ước, tên interface trong C# bắt đầu bằng chữ I.

Interface INotifier chỉ khai báo phương thức Send. Class EmailNotifier cài đặt interface này bằng cách in thông báo qua email. Biến notifier có kiểu INotifier nên phần code sử dụng không phụ thuộc vào cách gửi cụ thể. Muốn thêm kênh SMS hay Slack, bạn chỉ cần tạo class mới cài đặt INotifier.

Ví dụ C# chạy được

C#
Chạy code →
Program.cs
using System;

interface INotifier { void Send(string message); }
class EmailNotifier : INotifier { public void Send(string message) => Console.WriteLine($"Email: {message}"); }

class Program
{
    static void Main()
    {
        INotifier notifier = new EmailNotifier();
        notifier.Send("Build complete");
    }
}
Kết quả khi chạy
Email: Build complete

Luyện tập với trình gỡ lỗi

Đặt breakpoint ở một phép gán hoặc điều kiện quan trọng, bấm Debug và xem giá trị các biến cục bộ (local variable) trước khi bước sang dòng tiếp theo.

Luyện tập với thử thách

Áp dụng kiến thức của bài học này để giải một bài toán thực tế. Mỗi thử thách chạy ngay trên trình duyệt, có kiểm thử tức thì và AI nhận xét.

Tất cả thử thách