[c#] C# 다형성의 구체적인 예시

다형성(Polymorphism)이란?

C#에서 다형성은 오버로딩, 오버라이딩, 인터페이스, 추상 클래스 등을 통해 구현됩니다.

오버로딩(Overloading)

public class Calculator
{
    public int Add(int a, int b)
    {
        return a + b;
    }

    public double Add(double a, double b)
    {
        return a + b;
    }
}

오버라이딩(Overriding)

public class Animal
{
    public virtual void MakeSound()
    {
        Console.WriteLine("Some sound");
    }
}

public class Dog : Animal
{
    public override void MakeSound()
    {
        Console.WriteLine("Bark");
    }
}

public class Cat : Animal
{
    public override void MakeSound()
    {
        Console.WriteLine("Meow");
    }
}

인터페이스(Interface)

public interface IShape
{
    double GetArea();
}

public class Circle : IShape
{
    public double Radius { get; set; }

    public double GetArea()
    {
        return Math.PI * Radius * Radius;
    }
}

public class Rectangle : IShape
{
    public double Width { get; set; }
    public double Height { get; set; }

    public double GetArea()
    {
        return Width * Height;
    }
}

추상 클래스(Abstract Class)

public abstract class Shape
{
    public abstract double GetArea();
}

public class Square : Shape
{
    public double Side { get; set; }

    public override double GetArea()
    {
        return Side * Side;
    }
}

public class Triangle : Shape
{
    public double Base { get; set; }
    public double Height { get; set; }

    public override double GetArea()
    {
        return 0.5 * Base * Height;
    }
}

이러한 예시들을 통해 C#에서의 다형성을 구현하는 방법을 살펴볼 수 있습니다.

참고 자료