Professional Documents
Culture Documents
+ Tạo một lớp mới bằng cách phát triển lớp đã có.
+ Lớp mới kế thừa những gì đã có trong lớp cũ và
phát triển những tính năng mới.
• Lớp cũ: Lớp mẹ hay lớp cơ sở (base class)
• Lớp mới: Lớp con hay lớp dẫn xuất (derived class)
11/30/2021
Công dụng kế thừa
3
Xây dựng lớp dẫn xuất
Cú pháp
class <tên lớp dẫn xuất>:[kiểu dẫn xuất]<tên lớp cơ sở>
{
// Các thành phần của lớp dẫn xuất
};
• Tên lớp dẫn xuất: Tên lớp được cho kế thừa từ lớp khác
• Tên lớp cơ sở: Là tên lớp đã được định nghĩa trước đó để
cho lớp khác kế thừa. public
• Kiểu dẫn xuất có thể là: protected
private (ngầm định)
4
Quyền truy xuất
Kế thừa với Public và Private:
• Public: Các thành phần Public của lớp mẹ vẫn là Public trong lớp
con
• Private: Toàn bộ các thành phần của lớp mẹ trở thành Private của
lớp con
• Lớp con chuyển kiểu được thành lớp mẹ nhưng ngược lại không
được
• Tất cả các thành phần của lớp mẹ đều trở thành Private của lớp
con
Kế thừa với Protected:
Có thể sử dụng bởi các phương thức trong lớp dẫn xuất từ nó, nhưng
không sử dụng được từ ngoài các lớp đó. 5
Tổng hợp quyền truy xuất
6
Xét bài toán
7
Phân tích
- Xây dựng lớp Congdan gồm:
+ Thuộc tính: kế thừa thuộc tính lớp Congdan và thêm thuộc tính: mã
+ Phương thức nhập: kế thừa phương thức nhập của lớp công dân
sau đó yêu cầu nhập thêm mã nhân viên, lương cơ bản, phụ cấp.
+ Phương thức hiển thị: kế thừa phương thức hiển thị của lớp công
dân sau đó hiển thị thêm mã nhân viên, lương cơ bản, phụ cấp.
8
Xây dựng lớp Congdan
9
Xây dựng lớp Nhân viên kế thừa lớp Công dân
10
Chương trình chính
11/30/2021
Sử dụng mảng lưu n nhân viên
11/30/2021
Đa kế thừa và sự trùng tên trong kế thừa
16
Ví dụ:
class A public:
{
private: void nhap()
int x; {cout<<“\n y=”;cin>>y};
public:
void nhap() }
{
void main()
cout<<“x=”;cin>>x;
{
}
}; B h;
class B:public A
{ h.B::nhap();//chỉ rõ lớp
private:
int y; h.A::nhap();
}
Code bài tóa xét vấn đề
Bài 1:
- Xây dựng Lớp Công dân với các thông tin: họ và tên,
địa chỉ, số chứng minh thư.
Phương thức: nhập, hiện thị thông tin
- Xây dựng lớp Nhân viên kế thừa lớp Công dân có
thêm các thông tin: mã nhân viên, lương cơ bản, phụ
cấp.
- Xây dựng phương thức nhập và hiển thị thông tin.
11/30/2021
BÀI THỰC HÀNH LỚP & ĐỐI TƯỢNG
11/30/2021
BÀI THỰC HÀNH LỚP & ĐỐI TƯỢNG
11/30/2021
BÀI THỰC HÀNH LỚP & ĐỐI TƯỢNG
Bài 4. (sử dụng đa kế thừa)
- Xây dựng lớp Nguoi gồm các thông tin sau:
Hoten (char[50]), Ngaysinh (char[12]), Quequan
(char[100]) và phương thức nhập, xuất.
- Xây dựng lớp diem gồm: Thuộc tính: Diemtoan (int),
Diemly (int), Diemhoa (int) và phương thức nhập xuất.
- Xây dựng lớp sinhvien kế thừa từ 2 lớp trên có thêm
thuộc tính: Lop (char [30]), Tongdiem (int) và các
phương thức nhập, xuất từ bàn phím.
Yêu cầu: Xây dựng phương thức nhập và hiển thị thông
tin