tailieunhanh - Ngôn ngữ lập trình - kế thừa
Tính kế thừa (inheritance) OOP cho phép xây dựng các lớp mới từ những lớp có sẵn-lớp cơ sở và cho phép lớp mới nạp chồng các phương thức của lớp cơ sở. Tính kế thừa cho phép lập trình viên sử dụng lại những đoạn mã có sẵn, tránh việc phát minh lại chiếc bánh xe (reinvent the wheel). | Lập trình C++ 1 Kế thừa Quan hệ “has a” và “is a” Bài toán minh hoạ composition Kế thừa đơn Nạp chồng Từ khoá protected Review Bài tập Quan hệ “has a” và “is a” Các đối tượng có thể có quan hệ với nhau. Quan hệ “has a”: A “has a” B nếu trong đối tượng A có một thành phần là đối tượng B (quan hệ bao gồm - composition) Ví dụ: Đối tượng Ngôi nhà có thành phần là đối tượng mái nhà, Tường và Cửa ra vào. Đối tượng Hình chữ nhật có thành phần là Điểm trên trái và dưới phải. Đối tượng Sinh viên có một thành phần là đối tượng Ngày tháng (ngày sinh). Quan hệ “has a” và “is a” Quan hệ “is a”: A “is a” B nếu đối tượng A có những đặc tính của đối tượng B (quan hệ kế thừa - inheritance) Ví dụ: Con voi có bản chất là một Động vật. Hình cầu là một sự mở rộng của Hình tròn. Sinh viên đại cương và Sinh viên chuyên ngành đều có những đặc điểm của Sinh viên. Chú ý: Trong lập trình đôi khi ta có thể cài đặt quan hệ giữa các đối tượng một cách “linh hoạt”. Chẳng hạn có thể coi Hình tròn là đối | Lập trình C++ 1 Kế thừa Quan hệ “has a” và “is a” Bài toán minh hoạ composition Kế thừa đơn Nạp chồng Từ khoá protected Review Bài tập Quan hệ “has a” và “is a” Các đối tượng có thể có quan hệ với nhau. Quan hệ “has a”: A “has a” B nếu trong đối tượng A có một thành phần là đối tượng B (quan hệ bao gồm - composition) Ví dụ: Đối tượng Ngôi nhà có thành phần là đối tượng mái nhà, Tường và Cửa ra vào. Đối tượng Hình chữ nhật có thành phần là Điểm trên trái và dưới phải. Đối tượng Sinh viên có một thành phần là đối tượng Ngày tháng (ngày sinh). Quan hệ “has a” và “is a” Quan hệ “is a”: A “is a” B nếu đối tượng A có những đặc tính của đối tượng B (quan hệ kế thừa - inheritance) Ví dụ: Con voi có bản chất là một Động vật. Hình cầu là một sự mở rộng của Hình tròn. Sinh viên đại cương và Sinh viên chuyên ngành đều có những đặc điểm của Sinh viên. Chú ý: Trong lập trình đôi khi ta có thể cài đặt quan hệ giữa các đối tượng một cách “linh hoạt”. Chẳng hạn có thể coi Hình tròn là đối tượng chứa một Điểm (tâm hình tròn) hoặc là một sự kế thừa từ đối tượng Điểm (!?). Ví dụ minh hoạ composition Xây dựng lớp Hinhchunhat từ lớp Diem #include // Lop Diem class Diem { private: int x, y; public: Diem(); // Cau tu mac dinh Diem(int xx, int yy); // Cau tu khoi tao toa do void DatToado(int xx, int yy); // Dat toa do int LayX(); // Tra ve toa do x int LayY(); // Tra ve toa do y }; Ví dụ minh hoạ composition // Cai dat phuong thuc Diem::Diem() { DatToado(0, 0); } Diem::Diem(int xx, int yy) { DatToado(xx, yy); } void Diem::DatToado(int xx, int yy) { x = xx; y = yy; } int Diem::LayX() { return x; } int Diem::LayY() { return y; } Ví dụ minh hoạ composition // Lop Hinhchunhat class Hinhchunhat { private: Diem tt, dp; public: Hinhchunhat(); // Cau tu mac dinh Hinhchunhat(int xtt, int ytt, int xdp, int ydp); // Khoi tao toa do void HienThongtin(); // Hien thi thong tin }; Dữ liệu của Hinhchunhat gồm điểm trên trái và điểm dưới phải Ví dụ minh hoạ .
đang nạp các trang xem trước