Bài giảng Lập trình hướng đối tượng (tiếp theo) do Lương Trần Hy Hiến thực hiện sau đây bao gồm những nội dung về Inheritance, Polymorphism; Abstract class; Interface; Examples & Exercises. Mời các bạn tham khảo bài giảng để hiểu rõ hơn về những nội dung này.
Lập trình Hướng đối tượng (tiếp theo) Lương Trần Hy Hiến hyhien@gmail.com Nội dung Inheritance Polymorphism Abstract class Interface Examples & Exercises Inheritance Quan hệ kế thừa Slide KẾ THỪA Kế thừa để tái sử dụng xây dựng lớp trước (lớp cha) Kế thừa để có tổ chức tốt, dễ quản lý dự án phần mềm, tránh rũi ro, giảm chi phí bảo trì Chú ý: ◦ ◦ ◦ Tài sản lớp cha Fields, Properties, Methods… Lớp kế thừa thành viên khai báo với private Không thể kế thừa constructor (mỗi lớp phải xây dựng constructor riêng) Lớp cha (base class) -Có fields, properties, methods Lớp (subclass) -Sử dụng fields, properties, mothods cha Cho phép sửa lại thêm VÍ DỤ KẾ THỪA public class PClass { public String PField; public void PMethod(){} // tạo đối tượng CClass Obj = new CClass(); // sử dụng field lớp cha Obj.PField = “Hello”; // gọi phương thức lớp Obj.CMethod(); // gọi phương thức lớp cha Obj.PMethod(); } // định nghĩa lớp kế thừa PClass public class CClass : PClass { public void CMethod(){} } PClass CClass Overide Overload Overload: Overload trường hợp class có nhiều phương thức tên khác cú pháp (tham số) Khi gọi phương thức nào, cần truyền tham số phương thức Overide Được sử dụng để viết đè lên phương thức lớp cha Phương thức lớp phải cú pháp vơi phương thức lớp cha nhứng phương thức lớp cha phải khai báo với từ khóa virtual con phải khai báo với override Ví dụ: Overload Override public class PClass { public void virtual M1(){} // tạo đối tượng PClass Obj = new CClass(); // gọi phương thức lớp Obj.M1(); } // định nghĩa lớp kế thừa PClass public class CClass : PClass { public void override M1(){} // sau đâu overload public void M2(String a){} public void M2(int a){} } PClass CClass Inheritance Slide Polymorphism Slide Polymorphism Slide 10 Abstract class Abstract class lớp sở trừu tượng Cho phép xây dựng thành phần (thường method) abstract để dùng chung cho lớp dẫn xuất Các thành phần abstract không cần cài đặt cụ thể Abstract class cần 01 thành phần abstract Abstract class có hay nhiều thành phần cụ thể Slide 11 Abstract class Slide 12 Abstract class Các lớp dẫn xuất từ abstract phải override lại thành phần abstract lớp sở trừu tượng Slide 13 Interface Khơng phải class Khơng có cài đặt Dùng để định nghĩa tập method cho lớp khác kế thừa Interface ràng buộc đảm bảo cho lớp thực điều Slide 14 Interface Slide 15 Abstract vs Interface Thừa kế Phạm vi Cài đặt Abstract Có Có thể Interface N Khơng không Slide 16 ... constructor (mỗi lớp phải xây dựng constructor riêng) Lớp cha (base class) -Có fields, properties, methods Lớp (subclass) -Sử dụng fields, properties, mothods cha Cho phép sửa lại thêm VÍ DỤ KẾ... thêm VÍ DỤ KẾ THỪA public class PClass { public String PField; public void PMethod(){} // tạo đối tượng CClass Obj = new CClass(); // sử dụng field lớp cha Obj.PField = “Hello”; // gọi phương... với override Ví dụ: Overload Override public class PClass { public void virtual M1(){} // tạo đối tượng PClass Obj = new CClass(); // gọi phương thức lớp Obj.M1(); } // định nghĩa lớp kế thừa