tailieunhanh - Dạng bài tập về Micosoft.NET- P18

Dạng bài tập về P18: Sau khi biết qua về .NET, câu hỏi bạn sẽ đặt ra là bạn có nên học lập trình trên .NET hay không. Nói chung, về lập trình có nhiều tôn giáo như VC++/Java, VB6, Delphi Bạn có thể chọn giữa C# và . Đối với VB6 programmers, học lập trình sẽ mất một thời gian, nhưng không khó. Nên nhớ rằng .NET không phải chỉ cho ta các ngôn ngữ lập trình, mà cả một hệ thống triển khai phần mềm chú trọng vào mục tiêu hơn là cách thức | Các bài tập Microsoft .NET 86 Virtual Methods Tuy nhiên hãy xem trường hợp ta code như sau Private Sub BtnParentClassObject_Click ByVal sender As _ ByVal e As Handles Dim obj As ClassCha obj New ClassCon End Sub Trước hết ở đây có vẻ kỳ kỳ tại sao declare một variable loại ClassCha mà lại instantiate một object ClassCon. Chuyện đó hoàn toàn bình thường vì ClassCon là một ClassCha. Tức là một variable loại ClassCha hay ClassCon đều có thể chứa thật ra là hold references to point to chỉ tới một instance của ClassCon. Điểm này áp dụng tổng quát khi ta dùng Inheritance. Một variable loại SuperClass có thể hold reference to bất cứ SubClass Object nào thừa kế từ SuperClass ấy. Đó là một cách để ta implement tính đa dạng polymorphism . Đều có thể làm ta ngạc nhiên là khi ta click button BtnParentClassObject ta cũng thấy hiển thị message Thưa các Bác . Các bài tập Microsoft .NET 87 Sao lạ vậy Variable obj được declared là ClassCha tại sao message không phải là Chào các cháu Lý do là Sub ChàoHỏi của ClassCon được gọi thay vì Sub ChàoHỏi của ClassCha. Ta nói Sub ChàoHỏi là Virtual method. Tất cả methods trong đều là virtual. Ý niệm virtual để nói rằng cái implementation của con cháu trẻ nhất trong dòng họ được dùng - không cần biết là variable có data type là class của thế hệ nào trong dòng họ. Tức là nếu variable dùng trong client code hold references to ClassÔngNội ClassCha ClassCon hay ClassCháu thì method trong ClassCháu được gọi. Nếu trong ClassCháu không có implementation của method thì ta gọi method trong ClassCon nếu không có thì gọi method trong ClassCha .. theo thứ tự từ bề dưới lên bề trên. Keyword Me Keyword Me được dùng khi ta muốn nói rõ explicitly rằng ta muốn dùng method của chính cái Class đang chứa code ấy chớ không phải một implementation nào khác của method ấy. Cũng có trường hợp ta phải dùng keyword Me để nói ta muốn dùng classlevel variable chớ không phải procedure-level .