Polymorphism with example

Introduction

What is Polymorphism?

Polymorphism means same operation may behave differently on different classes.

  • Example of Compile Time Polymorphism: Method Overloading
  • Example of Run Time Polymorphism: Method Overriding

Example of Compile Time Polymorphism

  • Method Overloading: Method with same name but with different arguments is called method overloading.
  • Method Overloading forms compile-time polymorphism.

Example of Method Overloading:

class A1
{
     void hello()
     {
         Console.WriteLine("Hello");
     }
     void hello(string s)
     {
         Console.WriteLine("Hello {0}",s);
     }
}

Example of Run Time Polymorphism

  • Method Overriding: Method overriding occurs when child class declares a method that has the same type arguments as a method declared by one of its superclass.
  • Method overriding forms Run-time polymorphism.


Note: By default functions are not virtual in C# and so you need to write “virtual” explicitly. While by default in Java each function are virtual.
Example of Method Overriding:

Class parent
{
   virtual void hello()
   {
      Console.WriteLine("A D Patel");
   }
}
Class child : parent
{
   override void hello()
   {
      Console.WriteLine("R A Patel");
   }
}
static void main()
{
   parent objParent = new child();
   objParent.hello();
}
//Output
R A Patel