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

Trong lập trình C++ hướng đối tượng, “interface” (giao diện) là một khái niệm được sử dụng để định nghĩa một tập hợp các phương thức trừu tượng (abstract methods) mà các lớp khác nhau có thể triển khai. Giao diện không chứa dữ liệu (thuộc tính), chỉ chứa các khai báo phương thức mà các lớp khác nhau có thể cung cấp các phiên bản cụ thể.

Mặc dù C++ không có từ khóa “interface” như một ngôn ngữ như Java, nhưng bạn vẫn có thể thực hiện giao diện bằng cách sử dụng lớp trừu tượng chứa các phương thức trừu tượng mà các lớp dẫn xuất có thể triển khai.

Dưới đây là một ví dụ về cách thực hiện giao diện tương tự trong C++:

cpp
#include <iostream>

// Giao diện
class Drawable {
public:
    virtual void draw() = 0; // Phương thức trừu tượng
};

// Lớp dẫn xuất từ giao diện
class Circle : public Drawable {
public:
    void draw() override {
        std::cout << "Vẽ hình tròn" << std::endl;
    }
};

class Rectangle : public Drawable {
public:
    void draw() override {
        std::cout << "Vẽ hình chữ nhật" << std::endl;
    }
};

int main() {
    Circle circle;
    Rectangle rectangle;

    Drawable* shapes[2];
    shapes[0] = &circle;
    shapes[1] = &rectangle;

    for (int i = 0; i < 2; ++i) {
        shapes[i]->draw();
    }

    return 0;
}

Trong ví dụ trên, chúng ta tạo một “giao diện” tên là Drawable bằng cách sử dụng lớp trừu tượng chứa một phương thức trừu tượng draw(). Cả CircleRectangle đều triển khai phương thức draw() từ giao diện này.

Mặc dù C++ không có từ khóa “interface”, nhưng cách làm này tương tự việc sử dụng giao diện trong các ngôn ngữ khác như Java.

Leave a Comment

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

Scroll to Top