9. Interface trong lập trình C# hướng đối tượng

nterface (giao diện) trong lập trình C# hướng đối tượng là một khái niệm cho phép định nghĩa một tập hợp các phương thức trừu tượng (không có triển khai) mà các lớp khác nhau có thể triển khai để định nghĩa các hành vi cụ thể. Giao diện giúp tách biệt khai báo hành vi của một đối tượng và triển khai thực tế của nó.

Dưới đây là một số điểm cơ bản về giao diện trong lập trình C# hướng đối tượng:

1. Định nghĩa giao diện:

csharp
interface IShape {
    void Draw();  // Khai báo phương thức trừu tượng
}

2. Triển khai giao diện:

csharp
class Circle : IShape {
    public void Draw() {
        Console.WriteLine("Drawing a circle.");
    }
}

class Rectangle : IShape {
    public void Draw() {
        Console.WriteLine("Drawing a rectangle.");
    }
}

3. Đa kế thừa giao diện:

csharp
interface IShape {
    void Draw();
}

interface IMovable {
    void Move();
}

class Circle : IShape, IMovable {
    public void Draw() {
        Console.WriteLine("Drawing a circle.");
    }

    public void Move() {
        Console.WriteLine("Moving the circle.");
    }
}

4. Sự khác biệt giữa lớp trừu tượng và giao diện:

  • Một lớp trừu tượng có thể chứa cả phương thức trừu tượng và phương thức đã triển khai, trong khi giao diện chỉ chứa khai báo phương thức.
  • Một lớp chỉ có thể kế thừa một lớp trừu tượng, nhưng có thể triển khai nhiều giao diện.
  • Giao diện thường được sử dụng để định nghĩa các hành vi chung mà các lớp không liên quan nhau có thể triển khai.

5. Sử dụng giao diện để thay đổi hành vi của đối tượng: Giao diện cho phép tạo các đối tượng có hành vi khác nhau bằng cách triển khai các giao diện khác nhau. Điều này cho phép các lớp không cùng một tổ tiên chung (như trong trường hợp kế thừa) có thể sử dụng chung một hành vi.

Giao diện là một công cụ quan trọng trong lập trình hướng đối tượng, cho phép tách biệt khai báo và triển khai hành vi, tăng tính sáng tạo và tái sử dụng mã, và giúp xây dựng các ứng dụng linh hoạt và dễ mở rộng trong lập trình C# hướng đối tượng.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top