intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Lập trình hướng đối tượng: Chương 5 - GV. Dương Khai Phong

Chia sẻ: Fczxxv Fczxxv | Ngày: | Loại File: PDF | Số trang:52

81
lượt xem
6
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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.

Chủ đề:
Lưu

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

  1. Đ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
  2. 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
  3. 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
  4.  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
  5.  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
  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  Ƣ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
  7.  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
  8. 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
  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  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
  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  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
  11.  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
  12.  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
  13.  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
  14.  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
  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:  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
  16.  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
  17.  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
  18.  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
  19.  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
  20. 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
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2