articles

Home / DeveloperSection / Articles / Polymorphism in C#.Net

Polymorphism in C#.Net

AVADHESH PATEL6797 09-Jul-2012

Polymorphism gives ability how my object works in different situation.Polymorphism means same operation may behave differently on different classes.Polymorphism means having more than one form. It allows you to invoke derived class methods through a base class reference during run-time.

Overloading and overriding are used to implement polymorphism.

Polymorphism is classified into compile time polymorphism or early binding or static binding and Runtime polymorphism or late binding or dynamic binding.

There are 6 way to achieve polymorphism:

1.       Operator overloading

2.       Method overloading

3.       Virtual function

4.       Generic  

5.       Interface

6.       Abstract class

Method overloading or Compile Time Polymorphism:

In the example there is one function with two different arguments, one have integer and one have string.  So when a function perform different – different task with different – different argument that called function overloading.  

Method Overriding or Run Time Polymorphism:
using System;
using System.Collections.Generic;
using System.Linq;
 
namespace abstarction
{
    public abstract class university
    {
        public abstract void BTech();
        public abstract void MBA();
    }
 
    public class GBTU : university
    {
        public override void BTech()
        {
            Console.WriteLine("GBTU BTech Fee 50000/-");
        }
 
        public override void MBA()
        {
            Console.WriteLine("GBTU MBA Fee 100000/-");
        }
    }
 
    public class MTU : university
    {
        public override void BTech()
        {
            Console.WriteLine("MTU BTech Fee 40000/-");
        }
 
        public override void MBA()
        {
            Console.WriteLine("MTU MBA Fee 800000/-");
        }
    }
 
 
    class Program
    {
        static void Main(string[] args)
        {
            GBTU g = new GBTU();
          g.BTech();
            g.MBA();
            MTU m = new MTU();
            m.BTech();
            m.MBA();
            Console.ReadLine();
        }
    }
}
 

Output-

GBTU BTech Fee 50000/-

GBTU MBA Fee 100000/-

MTU BTech Fee 40000/-

MTU MBA Fee 800000/-

Polymorphism via Generic: 

First argument

class test<temp>
    {
        public temp show(temp t)
        {
            return t;
        }
    }
 
    class Program
    {
        static void Main(string[] args)
        {
            test<int> i = new test<int>();
            Console.WriteLine(i.show(22));
            test<string> s = new test<string>();
            Console.WriteLine(s.show("hello..."));
            Console.ReadLine();
        }
    }

Output:

22

Hello…

Second Argument

class test<temp>
    {
        public temp show(temp t)
        {
            return t;
        }
    }
 
    class Program
    {
        static void Main(string[] args)
        {
            test<int> i = new test<int>();
            Console.WriteLine(i.show(10));
            test<string> s = new test<string>();
            Console.WriteLine(s.show("How are you..."));
            Console.ReadLine();
        }
    }

Output:

10

How are you…

Note. Through generic object we can call generic and non generic function in generic class.


Updated 30-Nov-2017
Avadhesh Kumar Patel District Project Manager - Aligarh 14 months work experience in Panchayati Raj Department Sector as District Project Manager & 12 months work experience in IT Sector as Software Engineer. :-)

Leave Comment

Comments

Liked By