C++ Bài 12: Tính Kế Thừa Trong Lập Trình C++

Chào mừng các bạn đến với blog: Phát Triển Phần Mềm 123AZ

Với chủ đề chia sẻ học lập trình c++. Bài viết ngày hôm nay chúng ta cùng tìm hiểu về:

 Tính kế thừa trong lập trình c++

– Được coi là một trong những tính chất tiêu biểu của lập trình hướng đối tượng.

– Nó được sử dụng cực kỳ phổ biến khi triển khai các dự án phần mềm c++.

1. Vì sao phải sử dụng tính kế thừa.

– Khi mô hình hóa các đối tượng sẽ có những đối tượng có nhiều đặc điểm giống nhau về các trường thuộc tính, và các phương thức.

– Nếu không sử dụng tính kế thừa sẽ dễ gây ra hiện tượng nhiều đoạn mã code trùng nhau, lặp đi lặp lại.

– Để tối ưu hơn, thì phải tái sử dụng được các đoạn mã code, nghĩa là chỉ cần một đoạn mã code được viết ra nhưng nó có thể sử dụng cho nhiều lớp đối tượng.

– Ngoài ra các đối tượng khi mô hình hóa hoàn toàn có thể xây dựng được các mối quan hệ liên quan, như cha con.

=> Đó chính là nguyên lý cho sự kế thừa.

2. Bài toán ví dụ tính kế thừa.

Viết chương trình quản lý nhân viên một công ty, học sinh một lớp học, hay các thành viên trong một tổ chức xã hội.

a. Phân tích bài toán:

Nhân viên, học sinh, cá nhân đều là đối tượng con người có chung các thuộc tính như sau:

  1. Tên
  2. Tuổi
  3. Giới tính
  4. Số chưng minh
  5. Quê quán.

Sau đó là các thuôc tính riêng cho từng loại:

Nhân viên:  lương, cấp bậc, chỉ số năng lực.

Học sinh: Điểm, chỉ số xếp hạng

Cá nhân tổ chức: Số năm hoạt động. thành tích hoạt động….

b. Ý tưởng thiết kế.

– Từ những thuộc tính chung ở trên, ta sẽ tạo ra một lớp đối tượng cha bao gồm các thông tin chung.

– Sau đó là các lớp con kế thừa lớp cha để sử dụng các thuộc tính chung, sau đó mỗi lớp con sẽ khai bao thêm các thuộc tính riêng của chúng.

Hãy cùng xem một lớp base mà tôi định nghĩa như sau:

Các bạn sẽ thấy:

Lớp cha chính là lớp PersonInfo, chứa các thuộc tính chung cho một con người.

=> Bất cứ đối tượng nào liên quan đến con người đều có thể kế thừa từ lớp cha PersonInfo.

3. Lý thuyết cơ bản tính kế thừa.

Cách khai báo một lớp kế thừa một lớp như sau:

Giả sử tôi có lớp base là lớp : PersonInfo ở trên.

Và tôi sẽ khai báo ra một lớp nhân viên có tên là StaffInfo kế thừa lớp base.

Cú pháp như sau:

[Từ khóa class] [tên lớp kế thừa] : [quyền thừa kế] [tên lớp thừa kế]

Chúng ta sẽ chỉ quan tâm đến quyền thừa kế:

Có 3 loại quyền thừa kế là : public, protected, private.

Và thông thường người ta chủ yếu sử dụng quyền public khi thừa kế.

Vậy ý nghĩa của 3 loại quyền này thế nào.

3.1. Thừa kế quyền public:

– Với Các biến thành viên public lớp cha, thì cũng là public với lớp con, nghĩa là ông con có thể gọi được các biến của ông cha.

– Các biến thành viên protected lớp cha thì cũng trở thành protected của lớp con, và lớp con cũng gọi trực tiếp được đến các biến protected lớp cha.

– Với Các biến private lớp cha thì là riêng tư của cha, ông con không được phép can thiệp trực tiếp vào (muốn can thiệp phải thông qua function dạng public hoặc protected của lớp cha.)

3.2. Kế thừa quyền protected.

Các biến public hay protected của lớp cha sẽ được coi như là biến protected của lớp con.

Đối tượng lớp con  không thể trực tiếp truy xuất đến biến public của cha ở một hàm bất kỳ(vì qua ông con, biến public của cha đã trở thành protected của con).

3.3 Kế thừa quyền private.

Các biến trong lớp cha, ở mọi quyền, đều trở thành private của lớp con.

4. Thực hành tính kế thừa trong lập trình c++.

Các bạn có thể xem video để dễ hiểu hơn.

 

 

 

Lưu

Lưu

Lưu

3 thoughts on “C++ Bài 12: Tính Kế Thừa Trong Lập Trình C++

Leave a Reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.