Polymorphism using Abstract Classes in Visual Basic.NET 2005 - Making use of Polymorphism using abstract classes in Visual Basic 2005
(Page 6 of 6 )
Since you are now familiar with abstract methods and abstract classes, it is time to learn about polymorphism.
Let us modify the code for testing as follows:
Dim sh As Shape
sh = New Rectangle(10, 20)
MessageBox.Show("Area of rectangle: " & sh.GetArea)
sh = New Square(20)
MessageBox.Show("Area of square: " & sh.GetArea)
sh = New EquiTriangle(5, 10)
MessageBox.Show("Area of triangle: " & sh.GetArea)
In the above code, I am always using the same variable (reference variable, and it is not a concrete object) to hold the instances of all child classes -- "Rectangle," "Square" and "EquiTriangle."
You can also observe that I am using the same variable "sh" and calling the same method "GetArea" with different results. Using the same method with different implementations and different executions at run-time is nothing but polymorphism.
A final note! We can never create any concrete object (an instance with a "new" operator) or instantiate on any abstract class. For example, the following declaration is invalid:
Dim shp As New Shape(10, 20)
This is because any abstract class is never completely implemented (it contains abstract methods without any implementation). If there exists no implementation for a method, we will not be able to access it using an object (or instance). And hence, we will not be able to instantiate any abstract class.
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. |