Trang chủ » Bài 3 – Kế thừa trong OOP (Phần 1)
Lập trình hướng đối tượng

Bài 3 – Kế thừa trong OOP (Phần 1)

oop

Xin chào mọi người!

Hôm nay mình xin trở lại với Kế thừa trong OOP (Inheritance). Giống như 1 gia đình, bạn được sinh ra từ bố mẹ (không phải ông hàng xóm đâu nhé :v), thì tất nhiên bạn sẽ được hưởng 1 số gen tốt hoặc xấu của bố mẹ bạn. Hoặc mở rộng ra, con người, con chó mèo gà chuột chim thú gì gì đó, cũng đều được gom lại là nhóm “động vật” (kế thừa). Vậy nên ở bài viết hôm nay, mình xin giới thiệu về Kế thừa trong OOP.

1. Khái niệm

Kế thừa là việc tạo ra 1 lớp có các thuộc tính và phương thức cho phép của lớp được kế thừa (lớp cha). Hơn thế nữa, lớp này có thể tự tạo cho bản thân các thuộc tính và phương thức riêng.

Nói rất khó hiểu, nhưng bạn hãy tưởng tượng như thế này:

Ke-thua

Từ lớp động vật có “đi, đứng, nằm, ăn ngủ,…”, thượng đế tạo ra các giống loài, trong đó có con người con mèo. Lớp con mèo cũng biết “đi, đứng, nằm, ăn ngủ,…”, tuy nhiên nó còn biết “kêu ngoào ngoào đòi ăn”, không được thì ăn vụng nữa.

Lớp con người sau thời kì tiến hoá cũng biết “đi shopping, bar,…”, tuy nhiên cũng giống lớp con mèo, người cũng biết ăn ngủ đi đứng (ai không biết thì không phải người nhé :v). Vậy nên ta có thể kết luận rằng lớp con người con mèo kế thừa từ lớp động vật (kế thừa các thuộc tính, phương thức đi đứng ăn ngủ nằm này nọ lọ chai).

Bạn đã hiểu sơ bộ chưa? Chưa thì đọc lại cho kĩ, còn nếu rồi thì vào sâu hơn nhé 😀

2. Kế thừa trong OOP

Cú pháp rất đơn giản:

class <tên lớp con> : public <tên lớp cha>,... // nếu kế thừa nhiều lớp cha
{
// Từ đây, ta có thể sử dụng những thuộc tính và phương thức được cho phép của lớp cha
};

Giả sử, ta muốn làm 1 game kiếm hiệp, thì ta xây dựng class như sau:

class VoMonPhai
{
public:
string Ten;
int CapDo;
void ChieuCoBan()
{
cout << "Tiep chieu!!";
}
};
class ThieuLam : public VoMonPhai
{
public:
string HePhai;
ThieuLam(string Ten, int CapDo)
{
this->Ten = Ten;
this->CapDo = CapDo;
}
void ChieuTranPhai()
{
cout << "Hay do chieu tran phai day!!!";
}
};
void main()
{
ThieuLam tui = new ThieuLam("Son", 100);
// Xuất chiêu giết gọn đối thủ
tui->ChieuCoBan();
tui->ChieuTranPhai();
}

Bạn thấy không? Vậy là ta đã tạo ra được 1 lớp Thiếu Lâm kế thừa từ Vô môn phái. Ta vẫn có thể xuất chiêu cơ bản từ class Vô môn phái :D. Về sau nếu ra nhiều môn phái khác, ta chỉ cần cho chúng kế thừa từ lớp cơ sở, như vậy sẽ logic và dễ dàng hơn!

Vậy là đã kết thúc Kế thừa phần 1, ở phần tiếp theo ta cùng tìm hiểu sâu hơn về kế thừa nhé! Cảm ơn các bạn đã theo dõi!

Tags

About the author

Võ Hoài Sơn

Tính tình bất định
Chọc vào là bịnh
Rất yêu lập trình
Luôn code hết mình
Mình hiện đang là sinh viên của trường ĐH Khoa học tự nhiên TPHCM. Bản thân rất thích code, kiêm luôn cả mần thơ nên thường hơi hâm hâm dở dở. Ngoài ra chém gió, chém chuối, chém trái cây các kiểu cũng là sở trường của mình. Rất mong được làm quen với các bạn :D

Add Comment