![](images/graphics/blank.gif)
Bài giảng Lập trình hướng đối tượng: Chương 5 - GV. Dương Khai Phong
lượt xem 6
download
![](https://tailieu.vn/static/b2013az/templates/version1/default/images/down16x21.png)
Bài giảng Lập trình hướng đối tượng: Chương 5 Sự kế thừa và tính đa hình nhằm trình bày về khái niệm kế thừa, kế thừa đơn, kế thừa đa hình, tính đa hình trong kế thừa...cùng tìm hiểu bài giảng để hiểu sâu hơn về kế thừa và tính đa hình.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Lập trình hướng đối tượng: Chương 5 - GV. Dương Khai Phong
- ĐH CÔNG NGHỆ THÔNG TIN http://sites.google.com/site/khaiphong Số tiết lý thuyết: 45 tiết Số tiết thực hành: 30 tiết 1
- http://sites.google.com/site/khaiphong Nội dung môn học: Chương 1: Tổng quan về OOP Chương 2: Lớp & đối tƣợng Chương 3: Hàm và hàm đa năng trong OOP Chương 4: Đa năng hóa toán tử Chương 5: Sự kế thừa và tính đa hình 2
- http://sites.google.com/site/khaiphong Chương 4: Sự kế thừa và tính đa hình Khái niệm sự kế thừa Kế thừa đơn Đa kế thừa Tính đa hình trong kế thừa 3
- Chương 4: Sự kế thừa và tính đa hình http://sites.google.com/site/khaiphong Khái niệm sự kế thừa Khái niệm Khái niệm: Ví dụ Kế thừa trong OOP là sự tái sử dụng Ƣu điểm các lớp có các đặc tính chung với nhau để tạo ra các lớp mới từ một hay Thành phần kế thừa nhiều lớp đã có. Phân loại Ví dụ: Xét về bản chất: NV_VANPHONG và NV_SANXUAT đều là nhân viên nên nó phải có các thuộc tính chung: MaNV, Hoten, CMND.. của một ngƣởi nhân viên. 4
- Chương 4: Sự kế thừa và tính đa hình http://sites.google.com/site/khaiphong NHANVIEN MaNV Hoten CMND Nhap() Xuat() Tinhluong() NV_VANPHONG NV_SANXUAT LCB Sogiolam Phucap SoSP MaNV MaNV Hoten Hoten KẾ THỪA CMND CMND NHÂN Nhap() Nhap() VIÊN Xuat() Xuat() Tinhluong() Tinhluong() 5
- Chương 4: Sự kế thừa và tính đa hình http://sites.google.com/site/khaiphong Khái niệm sự kế thừa Khái niệm Ƣu điểm: Ví dụ Tái sử dụng chƣơng trình đã có Cho phép tạo ra các thƣ việc lớp (là Ƣu điểm tập hợp dữ liệu và hàm đƣợc đóng Thành phần kế thừa gói thành các lớp, ví dụ: thƣ viện Phân loại math.h, string.h…) Thành phần kế thừa: Lớp kế thừa sẽ kế thừa: Thành phần dữ liệu không thuộc private của lớp đƣợc kế thừa. Đƣợc quyền truy xuất các hàm thành viên không thuộc private của lớp đƣợc kế thừa. 6
- Chương 4: Sự kế thừa và tính đa hình http://sites.google.com/site/khaiphong Khái niệm sự kế thừa Khái niệm Phân loại: Ví dụ Kế thừa đơn: Ƣu điểm Lớp A Lớp cơ bản Lớp A Lớp cơ bản Thành phần kế thừa Lớp dẫn xuất Lớp B Lớp dẫn xuất Lớp B Phân loại từ A Lớp dẫn xuất Lớp C từ B Đa kế thừa: Lớp A Lớp B Lớp A Lớp A Lớp C Lớp B Lớp C Lớp D 7
- http://sites.google.com/site/khaiphong Chương 4: Sự kế thừa và tính đa hình Khái niệm sự kế thừa Kế thừa đơn Đa kế thừa Tính đa hình trong kế thừa 8
- Chương 4: Sự kế thừa và tính đa hình http://sites.google.com/site/khaiphong Kế thừa đơn Khái niệm Khái niệm: Phân loại Kế thừa đơn là tiến trình tạo ra một lớp mới Cú pháp từ một lớp đã có. Phân loại: Kiểu kế thừa Lớp A Lớp cơ bản Lớp A Lớp cơ bản Ví dụ Đặc điểm Lớp dẫn xuất Lớp B Lớp dẫn xuất Lớp B từ A Lớp dẫn xuất Lớp C từ B Kế thừa đơn 1 cấp Kế thừa đơn nhiều cấp (đa tầng) Lưu ý: trong kế thừa đơn nhiều cấp ta cần phân biệt lớp cơ bản trực tiếp (Lớp A) và lớp cơ bản gián tiếp (lớp B) => Lớp cơ bản trực tiếp: là lớp có tên trong khai báo của lớp dẫn xuất. 9
- Chương 4: Sự kế thừa và tính đa hình http://sites.google.com/site/khaiphong Kế thừa đơn Khái niệm Cú pháp: Phân loại class Coban{ … Cú pháp }; Kiểu kế thừa class Danxuat: Coban{ … Ví dụ }; Đặc điểm Trong đó: : có thể là public,protected hoặc private Lưu ý: khi không có từ khoá chỉ định thì mặc định kiểu kế thừa là private Ví dụ: class HINH{ class HCN:public HINH{ private: int mau; private: int dai,rong; }; }; 10
- Chương 4: Sự kế thừa và tính đa hình http://sites.google.com/site/khaiphong Kế thừa đơn Khái niệm Kiểu kế thừa: Kiểu kế thừa public: một lớp kế thừa kiểu public không làm Phân loại thay đổi tính truy cập các thành viên của lớp cơ bản. Cú pháp Kiểu kế thừa protected: một lớp kế thừa kiểu protected làm thay đổi tính truy cập các thành viên của lớp cơ bản thành Kiểu kế thừa protected. Kiểu kế thừa private: một lớp kế thừa kiểu private làm thay Ví dụ đổi tính truy cập các thành viên của lớp cơ bản thành Đặc điểm private. LỚP THỪA KẾ THỪA KẾ THỪA KẾ CƠ BẢN PUBLIC PRIVATE PROTECTED PUBLIC PUBLIC PRIVATE PROTECTED PROTECTED PROTECTED PRIVATE PROTECTED PRIVATE NO NO NO Ví dụ: 11
- Chương 4: Sự kế thừa và tính đa hình http://sites.google.com/site/khaiphong Kiểu kế thừa: public class A{ void main{ private: B obj; int data_pri; obj.data_pri=5; // error obj.data_pub=6; // ok public: } int data_pub; }; class B: public A{ void output(){ cout
- Chương 4: Sự kế thừa và tính đa hình http://sites.google.com/site/khaiphong Kiểu kế thừa: private class A{ void main{ private: B obj; int data_pri; obj.data_pri=5; // error obj.data_pub=6; // error public: } int data_pub; }; class B: private A{ void output(){ cout
- Chương 4: Sự kế thừa và tính đa hình http://sites.google.com/site/khaiphong Kiểu kế thừa: protected class A{ void main{ private: B obj; int data_pri; obj.data_pri=5; // error obj.data_pub=6; // error public: } int data_pub; }; class B: protected A{ Do lớp B kế thừa kiểu protected void output(){ nên tính truy cập của các thành cout
- Chương 4: Sự kế thừa và tính đa hình http://sites.google.com/site/khaiphong Kế thừa đơn Khái niệm Đặc điểm: Trình tự gọi hàm khởi tạo: Phân loại Khi có kế thừa, trình tự gọi hàm khởi tạo thực hiện theo Cú pháp nguyên tắc: hàm khởi tạo của lớp cơ bản được gọi trước và lớp dẫn xuất gọi sau. Kiểu kế thừa Lưu ý: ta có thể chỉ định hàm khởi tạo nào của lớp cơ bản đƣợc Ví dụ gọi bằng toán tử “:” (xem lại chƣơng 1). Ví dụ: Đặc điểm class A{ class B:public A{ A(); B():A(){..}; // gọi hàm A() A(int); B(int c):A(c){..}; // gọi hàm A(int) }; }; Trình tự gọi hàm huỷ: Hàm hủy đƣợc gọi theo trình tự ngƣợc lại: lớp dẫn xuất đƣợc gọi trƣớc và lớp cơ bản gọi sau. 15
- Chương 4: Sự kế thừa và tính đa hình http://sites.google.com/site/khaiphong Kế thừa đơn Khái niệm Đặc điểm: Gọi hàm thành viên trong kế thừa: Phân loại Hàm thành viên của lớp dẫn xuất có thể cùng tên với tên hàm Cú pháp thành viên của lớp cơ bản. Hàm thành viên đƣợc gọi ứng với đối tƣợng gọi nó Kiểu kế thừa Ví dụ: Ví dụ Đối tƣợng lớp cơ bản gọi thì hàm thành viên của lớp cơ bản thực hiện. Đặc điểm Đối tƣợng lớp dẫn xuất gọi thì hàm thành viên của lớp dẫn xuất thực hiện. Trong lớp dẫn xuất, muốn gọi hàm thành viên cùng tên của lớp cơ bản, ta dùng toán tử phạm vi “::” theo cú pháp sau: ::(…) Con trỏ trong kế thừa: Con trỏ lớp cơ bản có thể trỏ tới địa chỉ đối tƣợng của lớp dẫn xuất nhƣng ngược lại thì không. Đối tƣợng lớp dẫn xuất đƣợc xem nhƣ là một đối tƣợng của lớp cơ bản khi xử lý qua con trỏ nhƣng ngược lại thì không. 16
- Chương 4: Sự kế thừa và tính đa hình http://sites.google.com/site/khaiphong Ví dụ trình tự gọi hàm khởi tạo và hàm huỷ trong kế thừa đơn: class base{ class derived: public base{ public: public: base(){cout
- Chương 4: Sự kế thừa và tính đa hình http://sites.google.com/site/khaiphong Ví dụ gọi hàm hàm thành viên trong kế thừa: class base{ class derived: public base{ public: public: void out(){cout
- Chương 4: Sự kế thừa và tính đa hình http://sites.google.com/site/khaiphong Ví dụ con trỏ trong kế thừa: class A{ class B: public A{ protected: public: int dataA; int dataB; public: public: A(){dataA=5;} B():A(){dataB=10;} void showA(){cout
- http://sites.google.com/site/khaiphong Chương 4: Sự kế thừa và tính đa hình Khái niệm sự kế thừa Kế thừa đơn Đa kế thừa Tính đa hình trong kế thừa 20
![](images/graphics/blank.gif)
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Lập trình hướng đối tượng: Chương 3 - Nguyễn Sơn Hoàng Quốc, ThS. Nguyễn Tấn Trần Minh Khang
38 p |
144 |
19
-
Bài giảng Lập trình hướng đối tượng - Chương 2: Đối tượng và lớp
21 p |
176 |
15
-
Bài giảng Lập trình hướng đối tượng: Chương 2 - Nguyễn Sơn Hoàng Quốc, ThS. Nguyễn Tấn Trần Minh Khang
14 p |
181 |
12
-
Bài giảng Lập trình hướng đối tượng - Chương 3: Kế thừa
18 p |
143 |
10
-
Bài giảng Lập trình hướng đối tượng - Chương 1: Phương pháp lập trình hướng đối tượng
9 p |
146 |
9
-
Bài giảng Lập trình hướng đối tượng (dùng Java): Chương 1 - Trần Minh Thái (2017)
55 p |
86 |
8
-
Bài giảng Lập trình hướng đối tượng - Bài 1: Tổng quan lập trình hướng đối tượng
53 p |
125 |
8
-
Bài giảng Lập trình hướng đối tượng (Dùng C#): Chương 2 - Trần Minh Thái
35 p |
108 |
8
-
Bài giảng Lập trình hướng đối tượng - Bài 1: Tổng quan về OOP
0 p |
150 |
7
-
Bài giảng Lập trình hướng đối tượng: Chương 1 - Trần Thị Anh Thi
7 p |
202 |
7
-
Bài giảng Lập trình hướng đối tượng 1: Chương 1 - ThS. Thái Kim Phụng
39 p |
111 |
7
-
Bài giảng Lập trình hướng đối tượng – Bài 01: Tổng quan về OOP
47 p |
70 |
6
-
Bài giảng Lập trình hướng đối tượng (dùng JAVA): Chương 1 - Trần Minh Thái
40 p |
103 |
5
-
Bài giảng Lập trình hướng đối tượng: Chương 1 - GV. Hà Văn Sang
29 p |
93 |
5
-
Bài giảng Lập trình hướng đối tượng: Bài 1 - Tổng quan về lập trình hướng đối tượng
47 p |
18 |
4
-
Bài giảng Lập trình hướng đối tượng và C++: Chương 1
15 p |
110 |
4
-
Bài giảng Lập trình hướng đối tượng: Chương 1 - Các khái niệm cơ bản trong lập trình hướng đối tượng
36 p |
21 |
3
-
Bài giảng Lập trình hướng đối tượng (Object-Oriented Programming) - Chương 2: Phương pháp lập trình hướng đối tượng
35 p |
15 |
3
![](images/icons/closefanbox.gif)
![](images/icons/closefanbox.gif)
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn
![](https://tailieu.vn/static/b2013az/templates/version1/default/js/fancybox2/source/ajax_loader.gif)