Bài giảng Sự kế thừa
Số trang: 109
Loại file: ppt
Dung lượng: 311.00 KB
Lượt xem: 11
Lượt tải: 0
Xem trước 10 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Sự kế thừa là một đặc điểm của ngôn ngữ dùng để biểu diễn mối quan hệ đặc biệt giữa các lớp. Các lớp được trừu tượng hóa và tổ chức thành một sơ đồ phân cấp lớp. Và để hiểu rõ hơn về điều này mời các bạn tham khảo bài giảng Sự kế thừa sau đây.
Nội dung trích xuất từ tài liệu:
Bài giảng Sự kế thừaSựkếthừa 4.1Mởđầu Sự kế thừa là một đặc điểm của ngôn ngữ dùng để biểu diễnmốiquanhệ đặcbiệtgiữacáclớp.Cáclớp đượctrừu tượnghóavàtổchứcthànhmộtsơđồphâncấplớp. Kếthừalàmộtcơchếtrừutượnghóa.Thủtụcvàhàmlàcơ chế trừu tượng hóa cho giải thuật, record và struct là trừu tượng hóa cho dữ liệu. Khái niệm lớp trong C++, kết hợp dữliệuvàthủtụcđểđượckiểudữliệutrừutượngvớigiao diện độc lập với cài đặt và cho người sử dụng cảm giác thoảimáinhưkiểudữliệucósẵn Sự kế thừa là một mức cao hơn của trừu tượng hóa, cung cấp một cơ chế gom chung các lớp có liên quan với nhau thànhmộtmứckháiquáthóa đặctrưngchotoànbộcáclớp nói trên. Các lớp với các đặc điểm tương tự nhau có thể đượctổchứcthànhmộtsơđồphâncấpkếthừa.Lớpởtrên cùnglàtrừutượnghóacủatoànbộcáclớpỏbêndướinó. Mởđầu• Quanhệ“là1”:Kếthừađượcsửdụngthôngdụngnhấtđể biểudiễnquanhệ“là1”. – Mộtsinhviênlàmộtngười – Mộthìnhtrònlàmộthìnhellipse – Mộttamgiáclàmộtđagiác• Kếthừatạokhảnăngxâydựnglớpmớitừlớpđãcó,trong đóhàmthànhphầnđượcthừahưởngtừlớpcha.TrongC++, kếthừacònđịnhnghĩasựtươngthích,nhờđótacócơchế chuyểnkiểutựđộng.• Kếthừavừacókhảnăngtạocơchếkháiquáthoávừacó khảnăngchuyênbiệthoá.• Kếthừachophéptổchứccáclớpchiasẻmãchươngtrình chungnhờvậycóthểdễdàngsửachữa,nângcấphệ thống. Mởđầu• Kếthừathườngđượcdùngtheohaicách: – Đểphảnánhmốiquanhệgiữacáclớp.Làcôngcụđểtổ chứcvàphâncấplớpdựavàosựchuyênbiệthóa,trong đómộtvàihàmthànhphầncủalớpconlàphiênbảnhoàn thiệnhoặcđặcbiệthoácủaphiênbảnởlớpcha.Trong C++mốiquanhệnàythườngđượccàiđặtsửdụng: Kếthừapublic. Hàmthànhphầnlàphươngthứcảo – Đểphảnánhsựchiasẻmãchươngtrìnhgiữacáclớp khôngcóquanhệvềmặtngữnghĩanhưngcóthểcótổ chứcdữliệuvàmãchươngtrìnhtươngtựnhau.Trong C++,cơchếchiasẻmãnàythườngđượccàiđặtdùng: Kếthừaprivate. Hàmthànhphầnkhônglàphươngthứcảo. 4.2Kếthừađơn• Kếthừacóthểđượcthựchiệnđểthểhiệnmối quanhệlàmột.• Xéthaikháiniệm người vàsinhviênvớimốiquan hệtựnhiên:mộtsinhviênlàmộtngười.TrongC+ +,tacóthểbiểudiễnkháiniệmtrên,mộtsinhviên là một người có thêm một số thông tin và một số thaotác(riêngbiệtcủasinhviên).• Tatổchứclớpsinhviênkếthừatừlớpngười.Lớp người được gọi là lớp cha (superclass) hay lớp cơ sở (base class). Lớp sinh viên được gọi là lớp con (subclass)haylớpdẫnxuất(derivedclass). Kếthừađơnclass Nguoi {friend class SinhVien; char *HoTen; int NamSinh;public: Nguoi(char *ht, int ns):NamSinh(ns) {HoTen=strdup(ht);} ~Nguoi() {delete [] HoTen;} void An() const { cout Kếthừađơnclass SinhVien : public Nguoi { char *MaSo;public: SinhVien(char *ht, char *ms, int ns) : Nguoi(ht,ns) { MaSo = strdup(ms); } ~SinhVien() {delete [] MaSo;} void Xuat() const;};ostream& operator Kếthừađơnvoid Nguoi::Xuat() const { cout Kếthừađơnvoid main() { Nguoi p1(Le Van Nhan,1980); SinhVien s1(Vo Vien Sinh, 200002541,1984); cout Tựđộngkếthừacácđặctínhcủalớpcha• Khaibáo classSinhVien:publicNguoi{ //... }; Chobiếtlớpsinhviênkếthừatừlớpngười.Khiđó sinhviênđượcthừahưởngcácđặctínhcủalớp người.• Vềmặtdữliệu:Mỗiđốitượngsinhviêntựđộng cóthànhphầndữliệuhọtênvànămsinhcủa người.• Vềmặtthaotác:Lớpsinhviênđượctựđộngkế thừacácthaotáccủalớpcha.Đâychínhlàkhảnăng sửdụnglạimãchươngtrình.Tựđộngkếthừacácđặctínhcủalớpcha Nguoi p1(Le Van Nhan,1980); SinhVien s1(Vo Vien Sinh, 200002541,1984); p1.An(); cout Địnhnghĩalạithaotácởlớpcon• Tacóthểđịnhnghĩalạicácđặctínhởlớp conđãcóởlớpcha,việcđịnhnghĩachủyếu làthaotác,bằngcáchkhaibáogiốnghệtnhư ởlớpcha. classSinhVien:publicNguoi{ char*MaSo; public: //... voidXuat()const; }; voidSinhVien::Xuat()const{ cout Địnhnghĩalạithaotácởlớpcon• Việcđịnhnghĩalạithaotácởlớpconđượcthựchiệnkhi thaotácởlớpconkhácthaotácởlớpcha.Thôngthườnglà cácthaotácxuất,nhập.• Tacũngcóthểđịnhnghĩalạithaotácởlớpcontrongtrường hợpgiảithuậtởlớpconđơngiảnhơn(tômàuđagiác,tính moduncủasốảo...). classDaGiac{ ...
Nội dung trích xuất từ tài liệu:
Bài giảng Sự kế thừaSựkếthừa 4.1Mởđầu Sự kế thừa là một đặc điểm của ngôn ngữ dùng để biểu diễnmốiquanhệ đặcbiệtgiữacáclớp.Cáclớp đượctrừu tượnghóavàtổchứcthànhmộtsơđồphâncấplớp. Kếthừalàmộtcơchếtrừutượnghóa.Thủtụcvàhàmlàcơ chế trừu tượng hóa cho giải thuật, record và struct là trừu tượng hóa cho dữ liệu. Khái niệm lớp trong C++, kết hợp dữliệuvàthủtụcđểđượckiểudữliệutrừutượngvớigiao diện độc lập với cài đặt và cho người sử dụng cảm giác thoảimáinhưkiểudữliệucósẵn Sự kế thừa là một mức cao hơn của trừu tượng hóa, cung cấp một cơ chế gom chung các lớp có liên quan với nhau thànhmộtmứckháiquáthóa đặctrưngchotoànbộcáclớp nói trên. Các lớp với các đặc điểm tương tự nhau có thể đượctổchứcthànhmộtsơđồphâncấpkếthừa.Lớpởtrên cùnglàtrừutượnghóacủatoànbộcáclớpỏbêndướinó. Mởđầu• Quanhệ“là1”:Kếthừađượcsửdụngthôngdụngnhấtđể biểudiễnquanhệ“là1”. – Mộtsinhviênlàmộtngười – Mộthìnhtrònlàmộthìnhellipse – Mộttamgiáclàmộtđagiác• Kếthừatạokhảnăngxâydựnglớpmớitừlớpđãcó,trong đóhàmthànhphầnđượcthừahưởngtừlớpcha.TrongC++, kếthừacònđịnhnghĩasựtươngthích,nhờđótacócơchế chuyểnkiểutựđộng.• Kếthừavừacókhảnăngtạocơchếkháiquáthoávừacó khảnăngchuyênbiệthoá.• Kếthừachophéptổchứccáclớpchiasẻmãchươngtrình chungnhờvậycóthểdễdàngsửachữa,nângcấphệ thống. Mởđầu• Kếthừathườngđượcdùngtheohaicách: – Đểphảnánhmốiquanhệgiữacáclớp.Làcôngcụđểtổ chứcvàphâncấplớpdựavàosựchuyênbiệthóa,trong đómộtvàihàmthànhphầncủalớpconlàphiênbảnhoàn thiệnhoặcđặcbiệthoácủaphiênbảnởlớpcha.Trong C++mốiquanhệnàythườngđượccàiđặtsửdụng: Kếthừapublic. Hàmthànhphầnlàphươngthứcảo – Đểphảnánhsựchiasẻmãchươngtrìnhgiữacáclớp khôngcóquanhệvềmặtngữnghĩanhưngcóthểcótổ chứcdữliệuvàmãchươngtrìnhtươngtựnhau.Trong C++,cơchếchiasẻmãnàythườngđượccàiđặtdùng: Kếthừaprivate. Hàmthànhphầnkhônglàphươngthứcảo. 4.2Kếthừađơn• Kếthừacóthểđượcthựchiệnđểthểhiệnmối quanhệlàmột.• Xéthaikháiniệm người vàsinhviênvớimốiquan hệtựnhiên:mộtsinhviênlàmộtngười.TrongC+ +,tacóthểbiểudiễnkháiniệmtrên,mộtsinhviên là một người có thêm một số thông tin và một số thaotác(riêngbiệtcủasinhviên).• Tatổchứclớpsinhviênkếthừatừlớpngười.Lớp người được gọi là lớp cha (superclass) hay lớp cơ sở (base class). Lớp sinh viên được gọi là lớp con (subclass)haylớpdẫnxuất(derivedclass). Kếthừađơnclass Nguoi {friend class SinhVien; char *HoTen; int NamSinh;public: Nguoi(char *ht, int ns):NamSinh(ns) {HoTen=strdup(ht);} ~Nguoi() {delete [] HoTen;} void An() const { cout Kếthừađơnclass SinhVien : public Nguoi { char *MaSo;public: SinhVien(char *ht, char *ms, int ns) : Nguoi(ht,ns) { MaSo = strdup(ms); } ~SinhVien() {delete [] MaSo;} void Xuat() const;};ostream& operator Kếthừađơnvoid Nguoi::Xuat() const { cout Kếthừađơnvoid main() { Nguoi p1(Le Van Nhan,1980); SinhVien s1(Vo Vien Sinh, 200002541,1984); cout Tựđộngkếthừacácđặctínhcủalớpcha• Khaibáo classSinhVien:publicNguoi{ //... }; Chobiếtlớpsinhviênkếthừatừlớpngười.Khiđó sinhviênđượcthừahưởngcácđặctínhcủalớp người.• Vềmặtdữliệu:Mỗiđốitượngsinhviêntựđộng cóthànhphầndữliệuhọtênvànămsinhcủa người.• Vềmặtthaotác:Lớpsinhviênđượctựđộngkế thừacácthaotáccủalớpcha.Đâychínhlàkhảnăng sửdụnglạimãchươngtrình.Tựđộngkếthừacácđặctínhcủalớpcha Nguoi p1(Le Van Nhan,1980); SinhVien s1(Vo Vien Sinh, 200002541,1984); p1.An(); cout Địnhnghĩalạithaotácởlớpcon• Tacóthểđịnhnghĩalạicácđặctínhởlớp conđãcóởlớpcha,việcđịnhnghĩachủyếu làthaotác,bằngcáchkhaibáogiốnghệtnhư ởlớpcha. classSinhVien:publicNguoi{ char*MaSo; public: //... voidXuat()const; }; voidSinhVien::Xuat()const{ cout Địnhnghĩalạithaotácởlớpcon• Việcđịnhnghĩalạithaotácởlớpconđượcthựchiệnkhi thaotácởlớpconkhácthaotácởlớpcha.Thôngthườnglà cácthaotácxuất,nhập.• Tacũngcóthểđịnhnghĩalạithaotácởlớpcontrongtrường hợpgiảithuậtởlớpconđơngiảnhơn(tômàuđagiác,tính moduncủasốảo...). classDaGiac{ ...
Tìm kiếm theo từ khóa liên quan:
Sự kế thừa Bài giảng Sự kế thừa Kế thừa đơn Tự động kế thừa Định nghĩa lại thao tác ở lớp con Ràng buộc ngữ nghĩa ở lớp con Phạm vi truy xuấtGợi ý tài liệu liên quan:
-
Cấu trúc dữ liệu và Ngôn ngữ lập trình C
261 trang 43 0 0 -
Sự kế thừa, phát triển tư tưởng và nghệ thuật trong Truyện Kiều
11 trang 26 0 0 -
Bài giảng Lập trình hướng đối tượng (Object-Oriented Programming) - Chương 7: Sự kế thừa
45 trang 16 0 0 -
Bài giảng Lập trình hướng đối tượng - Chương 6: Kế thừa
70 trang 14 0 0 -
Bài giảng Lập trình hướng đối tượng - Lớp và đối tượng
65 trang 14 0 0 -
Bài giảng môn học Lập trình hướng đối tượng - Chương 4: Sự kế thừa
74 trang 14 0 0 -
Bài giảng Lập trình hướng đối tượng C: Chương 6 - ThS. Trần Anh Dũng
70 trang 14 0 0 -
42 trang 14 0 0
-
Bài giảng Lập trình hướng đối tượng: Chương 5 - GV. Dương Khai Phong
52 trang 14 0 0 -
Bài giảng Lập trình hướng đối tượng: Chương 6 - Nguyễn Minh Thành
34 trang 13 0 0