Overloading and Overriding in Visual Basic.NET 2005 - Multi-level method overriding in Visual Basic 2005 inheritance (Page 5 of 5 )
In the previous section, I covered the meaning of overriding. In this section, I shall extend the same concept further to multi-level inheritance and overriding in Visual Basic 2005.
Let us redefine our classes as follows:
Public Class Parent
Public Overridable Sub DispMsg()
MessageBox.Show("From Parent")
End Sub
End Class
Public Class Child
Inherits Parent
Public Overrides Sub DispMsg()
MessageBox.Show("From child")
End Sub
End Class
Public Class GrandChild
Inherits Child
Public Overrides Sub DispMsg()
MessageBox.Show("From grand child")
End Sub
End Class
If you observe the above code, I defined three classes with multi-level inheritance (child inherited from parent and grandchild inherited from child). You can still see that the same "DispMsg" method is defined in all of the classes.
If a method is defined with "overridable" in the parent, it can be overridden in child classes using "overrides." If a class has a method already defined with "overrides," it is implicitly declared as "overridable" and we need not define both "overrides" and "overridable" at the same time.
To test the above code, simply create an object based on the "GrandChild" class and try to call "DispMsg" as shown:
Dim obj As New GrandChild
obj.DispMsg() 'displays "From grant child"
Even in this case, if you try to convert the "GrandChild" object to any of its parent or grandparent classes and access the "DispMsg" method, you will receive the same output.
In my next article, I shall introduce "shadows." I hope you enjoyed the article and any suggestions, bugs, errors, enhancements etc. are highly appreciated at http://jagchat.spaces.live.com
| DISCLAIMER: The content provided in this article is not warranted or guaranteed by Developer Shed, Inc. The content provided is intended for entertainment and/or educational purposes in order to introduce to the reader key ideas, concepts, and/or product reviews. As such it is incumbent upon the reader to employ real-world tactics for security and implementation of best practices. We are not liable for any negative consequences that may result from implementing any information covered in our articles or tutorials. If this is a hardware review, it is not recommended to open and/or modify your hardware. |