What is runtime polymorphism?
By runtime polymorphism we can point to any derived class from the object of the
base class at runtime that shows the ability of runtime binding .In Object
oriented languages like Visual C++ we can use pointers to achieve runtime
polymorphism C# is also object oriented programming language that facilitates
the same functionality of runtime polymorphism as VC++ does.
Implementation:
In this article I will write the code first about the classes and explain you
later how its achieved in c#.
class
Shape
{
public virtual
void Draw()
{
}
}
class Ractangel:Shape
{
public override
void Draw()
{
Console.WriteLine("Rectangle
Drawn ");
}
}
class Circle:Shape
{
public override
void Draw()
{
Console.WriteLine("Circle
Drawn ");
}
}
class Traingle:Shape
{
public override
void Draw()
{
Console.WriteLine("Triangle
Drawn ");
}
}
static void
Main(string[] args)
{
/* Testing Polymorphism */
Shape[] s =
new Shape[3];
/* Polymorphic Objects */
/* creating
Array with Different types of Objects */
s[0] =
new Circle();
s[1] = new
Ractangel();
s[2] = new
Traingle();
Console.WriteLine("\n\nRuntime
polymorphism test\n\n");
for (int i = 0;
i < 3; i++)
{
s[i].Draw();
}
Console.ReadKey();
}
Explanation of the code:
Here we have created one base class called shape. We have inherited the shape
class in to three derived classes called Rectangle, Circle and triangle. each
contain method called Draw() .to achieve runtime polymorphism we need to declare
the method as virtual which we want to call from each derived object .Now we
want to call method draw of each object from same base class object .
By runtime polymorphism you can see we have built the array which containing
different types of objects in same array. And in Finally main Method of the
program we Called Draw () function of the different objects which were reside in
same array .At runtime. Though we are calling Draw function from the base class
object we can call method of Derived classes
Conclusion:
We have learnt how to achieve runtime polymorphism in Visual C#.