Trường Đại Học BáchKhoa Tp.HCM
Khoa Khoa học và Kỹ thuật Máy tính
© 2017
Lập trình C/C++
1
Chương 10
Lập trình hướng đối tượng
--Thừa kế--
Lê Thành Sách
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trường Đại Học BáchKhoa Tp.HCM
Khoa Khoa học và Kỹ thuật Máy tính
© 2017
Lập trình C/C++
2
Nội dung
nTại sao cần đến thừa kế
nCác khái niệm
nThừa kế là gì?
nCác kiểu thừa kế
nThiết kế các lớp (I).
nKhởi tạo lớp cha từ lớp con
nThiết kế các lớp (II).
nTổng kết
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trường Đại Học BáchKhoa Tp.HCM
Khoa Khoa học và Kỹ thuật Máy tính
© 2017
Lập trình C/C++
3
Tại sao cần đến thừa kế
nGiả sử một hệ thống phần mềm cho một trường đại học
(Bách Khoa). Nhiều nhóm người dùng có thể dùng hệ
thống này, họ có thể là:
a) Giảng viên (lecturer)
b) Sinh viên (student)
c) Nhân viên văn phòng (clerk)
d) Bảo vệ (guardian)
e) Người dọn dẹp (cleaner)
f) v.v
nMỗi nhóm người dùng có những tính năng khác nhau, hệ
thống xử lý dữ liệu với từng nhóm cũng khác nhau.
nGiải pháp là gì để phầm mềm xử lý dữ liệu với từng nhóm
người theo cách khác nhau?
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trường Đại Học BáchKhoa Tp.HCM
Khoa Khoa học và Kỹ thuật Máy tính
© 2017
Lập trình C/C++
4
Tại sao cần đến thừa kế
n(1) Tạo chung một cấu trúc “User”, cấu trúc này có trường
thông tin “type”. Giải thuật xử lý có dạng:
switch (type){
case STUDENT:{
//Xử lý, nếu là sinh viên
}
case LECTURER:{
//Xử lý, nếu là giảng viên
}
...
};
CuuDuongThanCong.com https://fb.com/tailieudientucntt
Trường Đại Học BáchKhoa Tp.HCM
Khoa Khoa học và Kỹ thuật Máy tính
© 2017
Lập trình C/C++
5
Tại sao cần đến thừa kế
n(1) Tạo chung một cấu trúc “User”, cấu trúc này có trường
thông tin “type”. Giải thuật xử lý có dạng:
nNhược điểm:
nCode dài dòng
nKhó thay đổi
nKhó mở rộng
n…
CuuDuongThanCong.com https://fb.com/tailieudientucntt