Trong lập trình C++ hướng đối tượng, Kế thừa (Inheritance) là một khái niệm quan trọng trong lập trình hướng đối tượng, cho phép bạn tạo ra một lớp mới (lớp dẫn xuất hoặc lớp con) dựa trên một lớp hiện có (lớp cơ sở hoặc lớp cha). Lớp dẫn xuất có thể kế thừa các thuộc tính và phương thức của lớp cơ sở, cũng như có thể mở rộng hoặc ghi đè chúng để thêm hoặc thay đổi hành vi.
Dưới đây là cách sử dụng kế thừa trong lập trình C++:
cpp
#include <iostream>
class Animal {
public:
void eat() {
std::cout << "Động vật đang ăn." << std::endl;
}
void sleep() {
std::cout << "Động vật đang ngủ." << std::endl;
}
};
class Dog : public Animal {
public:
void bark() {
std::cout << "Chó sủa: Gâu gâu!" << std::endl;
}
};
class Cat : public Animal {
public:
void meow() {
std::cout << "Mèo kêu: Meo meo!" << std::endl;
}
};
int main() {
Dog myDog;
myDog.eat();
myDog.bark();
Cat myCat;
myCat.eat();
myCat.meow();
return 0;
}
Trong ví dụ trên, chúng ta có một lớp cơ sở Animal
với các phương thức eat
và sleep
. Lớp Dog
và Cat
được kế thừa từ lớp Animal
bằng cách sử dụng public
trong khai báo lớp dẫn xuất (class Dog : public Animal
). Các lớp dẫn xuất có thể sử dụng các phương thức của lớp cơ sở, cũng như thêm các phương thức riêng cho mình.
Trong hàm main
, chúng ta tạo một đối tượng myDog
từ lớp Dog
và một đối tượng myCat
từ lớp Cat
, sau đó gọi các phương thức của cả lớp cơ sở và lớp dẫn xuất.
Kế thừa cho phép bạn tái sử dụng mã, tạo các lớp có cấu trúc tương tự và mở rộng chức năng của các lớp cơ sở.