Techiehook Techiehook
Updated date Jun 23, 2024
In this article, we will learn how to implement polymorphism in C# using inheritance and interfaces.

What is polymorphism?

Polymorphism means many forms that enable a single interface to work with different implementations. In other words, depending on the object on which it operates, the same method or function can do a variety of functions.

1. Using Inheritance

Inheritance is used to allow the class to inherit methods and attributes from its base class. Polymorphism can be performed using method overriding, as shown below

using System;

public class Car
{
    public virtual void MakeColor()
    {
        Console.WriteLine("The car has a color");
    }
}

public class Audi : Car
{
    public override void MakeColor()
    {
        Console.WriteLine("The Audi is red");
    }
}

public class Tesla : Car
{
    public override void MakeColor()
    {
        Console.WriteLine("The Tesla is blue");
    }
}

class Program
{
    static void Main()
    {
        Car myAudi = new Audi();
        Car myTesla = new Tesla();

        myAudi.MakeColor();
        myTesla.MakeColor();

        Console.ReadKey();
    }
}

In the program above, the MakeColor method is overridden in the Audi and Tesla classes. When MakeColor is called on a Car reference pointing to an Audi or Tesla object, the override method is invoked.

Output:

The Audi is red
The Tesla is blue

2. Using Interfaces

Interfaces specify the rules that classes must follow. This enables different classes to use the same interface in various ways, displaying a different sort of polymorphism.

using System;

public interface ICar
{
    void MakeColor();
}

public class Audi : ICar
{
    public void MakeColor()
    {
        Console.WriteLine("The Audi is red");
    }
}

public class Tesla : ICar
{
    public void MakeColor()
    {
        Console.WriteLine("The Tesla is blue");
    }
}

class Program
{
    static void Main()
    {
        ICar myAudi = new Audi();
        ICar myTesla = new Tesla();

        myAudi.MakeColor();
        myTesla.MakeColor();

        Console.ReadKey();
    }
}

In the above program, the ICar interface defines a MakeColor method. Both the Audi and Tesla classes implement this interface and provide their specific implementations of the MakeColor method. The Main method provides polymorphism by calling MakeColor on objects of types Audi and Tesla through the ICar interface reference.

Output:

The Audi is red
The Tesla is blue

 

ABOUT THE AUTHOR

Techiehook
Techiehook
Admin, Australia

Welcome to TechieHook.com! We are all about tech, lifestyle, and more. As the site admin, I share articles on programming, tech trends, daily life, and reviews... For more detailed information, please check out the user profile

https://www.techiehook.com/profile/alagu-mano-sabari-m

Comments (0)

There are no comments. Be the first to comment!!!