Danh mục

Bài giảng môn học Lập trình hướng đối tượng - Chương 4: Sự kế thừa

Số trang: 74      Loại file: pdf      Dung lượng: 457.89 KB      Lượt xem: 15      Lượt tải: 0    
Jamona

Phí tải xuống: 38,000 VND Tải xuống file đầy đủ (74 trang) 0
Xem trước 8 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. Chương này sẽ trang bị cho người học một số kiến thức về sự kế thừa như: Kế thừa đơn, phạm vi truy xuất, phương thức thiết lập và huỷ bỏ, con trỏ và kế thừa. Mời các bạn cùng tham khảo để nắm bắt các nội dung chi tiết.
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ài liệu được xem nhiều:

Gợi ý tài liệu liên quan: