Bài giảng Lập trình NET và C#: Lecture 5 Kế thừa- Đa hình trình bày các nội dung sau: Khái niệm kế thừa, gọi phương thức khởi dựng của cơ sở, gốc của tất cả các lớp,...Mời các bạn cùng tham khảo!
Lập trình NET C# Lecture 5: KẾ THỪA – ĐA HÌNH TS Đào Nam Anh UTM, Khoa KH&CN Resources Các giải pháp lập trình C#, Nguyễn Ngọc Bình Phương - Thái Thanh Phong Allen Jones C# Programmer's Cookbook Microsoft Press, 2004 John Connell Coding Techniques for Microsoft Visual Basic NET Microsoft Press, 2002 Harvey M Deitel, Paul J Deitel, & Tem R Nieto Visual Basic NET How to Program, Second Edition Prentice Hall, 2002 Jose Mojica C# and VB NET Conversion Pocket Reference O'Reilly, 2002 James Avery Ten Must-Have Tools Every Developer Should Download Now MSDN Magazine, 2004 Karl Moore The Ultimate VB.NET and ASP.NET Code Book Apress, 2003 Matthew MacDonald Microsoft Visual Basic NET Programmer's Cookbook Microsoft Press, 2003 Mark Schmidt & Simon Robinson Microsoft Visual C# NET 2003 Developer's Cookbook Sams Publishing, 2003 Dương Quang Thiện Lập trình Visual C# nào? Nhà xuất Tổng Hợp TP Hồ Chí Minh, 2005 Nguyễn Ngọc Bình Phương & Lê Trần Nhật Quỳnh Các giải pháp lập trình Visual Basic NET Nhà xuất Giao thông Vận tải, 2006 www.msdn.microsoft.com, www.codeproject.com, www.msd2d.com, www.developersdex.com, www.windowsforms.net, www.gotdotnet.com, www.codeguru.com, www.developerfusion.com Kế thừa Quan hệ đặc biệt hóa tổng quát hóa hai mối quan hệ đối ngẫu phân cấp với Chúng có quan hệ đối ngẫu đặc biệt xem mặt ngược lại tổng quát Loài ngựa mèo trường hợp đặc biệt động vật có vú Ngược lại động vật có vú trường hợp tổng qt từ lồi ngựa mèo Kế thừa Khi hai lớp chia xẻ chức với nhau, chúng trích phần chung đưa vào lớp sở Điều có lợi, cung cấp khả cao để sử dụng lại mã nguồn chung dễ dàng trì mã nguồn Kế thừa Kế thừa Kế thừa để tạo lớp dẫn xuất từ lớp ta thêm dấu hai chấm vào sau tên lớp dẫn xuất trước tên lớp sở: public class ListBox : Window Kế thừa G i phng th c kh i d ng c a l p c s lớp tên ListBox dẫn xuất từ lớp sở Window, lớp ListBox có phương thức khởi dựng lấy ba tham số Trong phương thức khởi dựng lớp dẫn xuất có gọi phương thức khởi dựng lớp sở Cách gọi thực việc đặt dấu hai chấm sau phần khai báo danh sách tham số tham chiếu đến lớp sở thông qua từ khóa base: Kế thừa lớp ListBox thực thi phiên phương thức DrawWindow(): public new void DrawWindow() Từ khóa new sử dụng để người lập trình tạo phiên cho phương thức bên lớp dẫn xuất Kế thừa public class Window { private int top; private int left; public Window( int top, int left) { this.top = top; this.left = left; } } 10 Kế thừa public class ListBox: Window { public ListBox (int top, int left, string theContents) : base (top, left) { mListBoxContents = theContents; } } 11 Kế thừa public cho phép thành viên truy cập phương thức thành viên lớp khác private cho phép phương thức thành viên lớp truy xuất protected mở rộng thêm khả private cho phép truy xuất từ lớp dẫn xuất lớp Internal mở rộng khả cho phép phương thức lớp khối kết hợp (assembly) truy xuất internal protected cho phép thành viên khối assembly lớp dẫn xuất truy cập 12 Đa hình tính đa hình (polymorphism) từ poly nhiều morph có nghĩa form (hình thức) Do vậy, đa hình hiểu khả sử dụng nhiều hình thức kiểu mà không cần phải quan tâm đến chi tiết 13 Đa hình khai báo khóa virtual phương thức lớp sở Trong lớp mở rộng: thêm từ khóa override để chồng lên phương thức 14 Đa hình new override định phủ phương thức ảo cách khai báo tường minh từ khóa override Điều giúp cho ta đưa phiên chương trình thay đổi lớp sở không làm ảnh hưởng đến chương trình viết lớp dẫn xuất 15 Đa hình Class Window { public virtual void DrawWindow() { } } 16 Đa hình Class ListBox: Window { public override void DrawWindow() { base.DrawWindow(); /// } } 17 Đa hình New từ khóa new, khơng phải phủ phương thức ảo lớp Window: public class ListBox : Window { public new virtual Sort( ) {….} } 18 Đa hình abstract Một phương thức trừu tượng khơng có thực thi Phương thức đơn giản tạo tên phương thức ký hiệu phương thức, phương thức thực thi lớp dẫn xuất Class Window { abstract public void DrawWindow( ); } 19 Đa hình Class ListBox: Window { public override void DrawWindow() { base.DrawWindow(); /// } } 20 Đa hình L p l p (sealed class) Ngược với lớp trừu tượng lớp cô lập Không cho phép lớp dẫn xuất từ Dùng từ khóa sealed đặt trước khai báo lớp không cho phép dẫn xuất Nhằm ngăn chặn tai nạn kế thừa gây 21 Đa hình G c c a t t c l p: L p Object Tất lớp ngôn ngữ C# kiểu liệu dẫn xuất từ lớp System.Object bao gồm kiểu liệu giá trị Equal( ) So sánh hai đối tượng GetHashCode( ) Cho phép đối tượng cung cấp riêng hàm băm cho sử dụng tập hợp GetType( ) Cung cấp kiểu đối tượng ToString( ) Cung cấp chuỗi thể đối tượng Finalize( ) Dọn dẹp tài nguyên MemberwiseClone( ) Tạo từ đối tượng 22 Question 23 ... 2003 Dương Quang Thiện Lập trình Visual C# nào? Nhà xuất Tổng Hợp TP Hồ Chí Minh, 20 05 Nguyễn Ngọc Bình Phương & Lê Trần Nhật Quỳnh Các giải pháp lập trình Visual Basic NET Nhà xuất Giao thông... giải pháp lập trình C#, Nguyễn Ngọc Bình Phương - Thái Thanh Phong Allen Jones C# Programmer's Cookbook Microsoft Press, 2004 John Connell Coding Techniques for Microsoft Visual Basic NET Microsoft... Ultimate VB .NET and ASP .NET Code Book Apress, 2003 Matthew MacDonald Microsoft Visual Basic NET Programmer's Cookbook Microsoft Press, 2003 Mark Schmidt & Simon Robinson Microsoft Visual C# NET 2003