Bài giảng môn học Lập trình hướng đối tượng - Chương 4: Sự kế thừa
Thông tin tài liệu:
Nội dung trích xuất từ tài liệu:
Bài giảng môn học Lập trình hướng đối tượng - Chương 4: Sự kế thừaChöông 4Söï keá thöøa 1 Noäi dung1. Môû ñaàu2. Keá thöøa ñôn3. Phaïm vi truy xuaát4. Phöông thöùc thieát laäp vaø huyû boû5. Con troû vaø keá thöøa 2 4.1 Môû ñaàu- Söï keá thöøa laø moät ñaëc ñieåm cuûa ngoân ngöõ duøng ñeå bieåu dieãn moái quan heä ñaëc bieät giöõa caùc lôùp. Caùc lôùp ñöôïc tröøu töôïng hoùa vaø toå chöùc thaønh moät sô ñoà phaân caáp lôùp.- Keá thöøa laø moät cô cheá tröøu töôïng hoùa. Thuû tuïc vaø haøm laø cô cheá tröøu töôïng hoùa cho giaûi thuaät, record vaø struct laø tröøu töôïng hoùa cho döõ lieäu. Khaùi nieäm lôùp trong C++, keát hôïp döõ lieäu vaø thuû tuïc ñeå ñöôïc kieåu döõ lieäu tröøu töôïng vôùi giao dieän ñoäc laäp vôùi caøi ñaët vaø cho ngöôøi söû duïng caûm giaùc thoaûi maùi nhö kieåu döõ lieäu coù saün- Söï keá thöøa laø moät möùc cao hôn cuûa tröøu töôïng hoùa. cung caáp moät cô cheá gom chung caùc lôùp coù lieân quan vôùi nhau thaønh moät möùc khaùi quaùt hoùa ñaëc tröng cho toaøn boä caùc lôùp noùi treân. Caùc lôùp vôùi caùc ñaëc ñieåm töông töï nhau coù theå ñöôïc toå chöùc thaønh moät sô ñoà phaân caáp keá thöøa. Lôùp ôû treân cuøng laø tröøu töôïng hoùa cuû3a toaøn boä caùc lôùp oû beân döôùi noù. Môû ñaàu Quan heä laø 1: Keá thöøa ñöôïc söû duïng thoâng duïng nhaát ñeå bieåu dieãn quan heä laø moät. • Moät sinh vieân laø moät ngöôøi • Moät hình troøn laø moät hình ellipse • Moät tam giaùc laø moät ña giaùc Keá thöøa taïo khaû naêng xaây döïng lôùp môùi töø lôùp ñaõ coù, trong ñoù haøm thaønh phaàn ñöôïc thöøa höôûng töø lôùp cha. Trong C++, keá thöøa coøn ñònh nghóa söï töông thích, nhôø ñoù ta coù cô cheá chuyeån kieåu töï ñoäng. Keá thöøa vöøa coù khaû naêng taïo cô cheá khaùi quaùt hoaù vöøa coù khaû naêng chuyeân bieät hoaù. Keá thöøa cho pheùp toå chöùc caùc lôùp chia seû maõ chöông trình chung nhôø vaäy coù theå deã daøng söûa chöõa, naâng caáp heä thoáng. 4 Môû ñaàu Keá thöøa thöôøng ñöôïc duøng theo hai caùch: • Ñeå phaûn aùnh moái quan heä giöõa caùc lôùp. Laø coâng cuï ñeå toå chöùc vaø phaân caáp lôùp döïa vaøo söï chuyeân bieät hoùa, trong ñoù moät vaøi haøm thaønh phaàn cuûa lôùp con laø phieân baûn hoaøn thieän hoaëc ñaëc bieät hoaù cuûa phieân baûn ôû lôùp cha. Trong C++ moái quan heä naøy thöôøng ñöôïc caøi ñaët söû duïng: Keá thöøa public. Haøm thaønh phaàn laø phöông thöùc aûo • Ñeå phaûn aùnh söï chia seû maõ chöông trình giöõa caùc lôùp khoâng coù quan heä veà maët ngöõ nghóa nhöng coù theå coù toå chöùc döõ lieäu vaø maõ chöông trình töông töï nhau. Trong C++, cô cheá chia seû maõ naøy thöôøng ñöôïc caøi ñaët duøng: Keá thöøa private. Haøm thaønh phaàn khoâng laø phöông 5 thöùc aûo. 4.2 Keá thöøa ñôn Keá thöøa coù theå ñöôïc thöïc hieän ñeå theå hieän moái quan heä laø moät. Xeùt hai khaùi nieäm ngöôøi vaø sinh vieân vôùi moái quan heä töï nhieân: moät sinh vieân laø moät ngöôøi. Trong C++, ta coù theå bieåu dieãn khaùi nieäm treân, moät sinh vieân laø moät ngöôøi coù theâm moät soá thoâng tin vaø moät soá thao taùc (rieâng bieät cuûa sinh vieân). Ta toå chöùc lôùp sinh vieân keá thöøa töø lôùp ngöôøi. Lôùp ngöôøi ñöôïc goïi laø lôùp cha (superclass) hay lôùp cô sôû (base class). Lôùp sinh vieân ñöôïc goïi laø lôùp con (subclass) hay lôùp daãn xuaát (derived class). 6 Keá 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 Keá 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 Keá thöøa ñônvoid Nguoi::Xuat() const{ cout Keá thöøa ñônvoid main(){ Nguoi p1(Le Van Nhan,1980); SinhVien s1(Vo Vien Sinh, 200002541,1984); cout Töï ñoäng keá thöøa caùc ñaëc tính cuûa lôùp cha Khai baùo class SinhVien : public Nguoi { //... }; Cho bieát lôùp sinh vieân keá thöøa töø lôùp ngöôøi. Khi ñoù sinh vieân ñöôïc thöøa höôûng caùc ñaëc tính cuûa lôùp ngöôøi. Veà maët döõ lieäu: Moãi ñoái töôïng sinh vieân töï ñoäng coù thaønh phaàn döõ lieäu hoï teân vaø naêm sinh cuûa ngöôøi. Veà maët thao taùc: Lôùp sinh vieân ñöôïc töï ñoäng keá thöøa caùc thao taùc cuûa lôùp cha. Ñaây chính laø khaû naêng söû duïng laïi maõ chöông trình. Rieâng phöông thö ...
Tìm kiếm theo từ khóa liên quan:
Lập trình hướng đối tượng Bài giảng Lập trình hướng đối tượng Sự kế thừa Kế thừa đơn Ràng buộc ngữ nghĩa Quan hệ kế thừaGợi ý tài liệu liên quan:
-
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 276 0 0 -
101 trang 200 1 0
-
14 trang 134 0 0
-
Giáo trình lập trình hướng đối tượng - Lê Thị Mỹ Hạnh ĐH Đà Nẵng
165 trang 112 0 0 -
Giáo trình Lập trình Windows 1 - Trường CĐN Đà Lạt
117 trang 96 0 0 -
Giáo trình Phân tích, thiết kế hướng đối tượng với UML: Phần 1 - Trường ĐH Công nghiệp Quảng Ninh
111 trang 95 0 0 -
265 trang 82 0 0
-
Giáo trình Lập trình hướng đối tượng với Java: Phần 2 - Trần Thị Minh Châu, Nguyễn Việt Hà
141 trang 75 0 0 -
33 trang 70 0 0
-
Ngôn ngữ lập trình C# 2005 - Tập 3: Lập trình hướng đối tượng (Phần 1)
196 trang 52 0 0 -
Đề cương môn học Lập trình Java
28 trang 50 0 0 -
Cấu trúc dữ liệu và Ngôn ngữ lập trình C
261 trang 45 0 0 -
Giáo trình Lập trình hướng đối tượng với Java: Phần 1 - Trần Thị Minh Châu, Nguyễn Việt Hà
150 trang 41 0 0 -
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 trang 41 0 0 -
Tự học lập trình hướng đối tượng và lập trình cơ sở dữ liệu C part 1
40 trang 36 0 0 -
Bài giảng Lập trình Java cơ bản: Chương 3 - GV. Võ Hoàng Phương Dung
55 trang 33 0 0 -
CHƯƠNG 14: CÁC CẤU TRÚC DỮ LIỆU ĐA CHIỀU
22 trang 33 0 0 -
102 trang 31 0 0
-
Bài thuyết trình Tổng quan về lập trình hướng đối tượng
21 trang 30 0 0 -
Phân tích thiết kế hướng đối tượng (phần 3)
4 trang 30 0 0