Polymorphism means the ability to take more than one form.
I am a corporate customer
I am a personal customer
I am a customer
 
        
        
Hello from Child.
- An operation may exhibit different behaviors in different instances.
 - The behavior depends on the data types used in the operation.
 - Polymorphism is extensively used in implementing Inheritance.
 - It allows you to invoke methods of derived class through base class reference during runtime.
 - It has the ability for classes to provide different implementations of methods that are called through the same name.
 
public class Customer
{
    public virtual void CustomerType()
    {
        Console.WriteLine("I am a customer");
    }
}
public class CorporateCustomer : Customer
{
    public override void CustomerType()
    {
        Console.WriteLine("I am a corporate customer");
    }
}
public class PersonalCustomer : Customer
{
    public override void CustomerType()
    {
        Console.WriteLine("I am a personal customer");
    }
}
public class MainClass
{
    public static void Main()
    {
        Customer[] C = new Customer[3];
        C[0] = new CorporateCustomer();
        C[1] = new PersonalCustomer();
        C[2] = new Customer();
        foreach (Customer CustomerObject in C)
        {
            CustomerObject.CustomerType();
        }
    }
}
 
 
 
        
    Output:I am a corporate customer
I am a personal customer
I am a customer
Method Overloading ( Compile Time Polymorphism):
- 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);
            }
        }
        
        Method Overriding (Run Time Polymorphism) :
- 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("Hello from Parent");
            }
        }
        class child : parent
        {
            override void hello()
            {
                Console.WriteLine("Hello from Child");
            }
        }
        static void main()
        {
            parent objParent = new child();
            objParent.hello();
        }
 
 
  Output:Hello from Child.
Comments
Post a Comment