[c#] 메서드 다형성

C#에서 다형성은 하나의 메서드가 여러 가지 형태를 가질 수 있는 특성을 말합니다. 이는 상속, 인터페이스, 오버로딩 등의 다양한 방법으로 구현될 수 있습니다.

오버로딩을 통한 다형성

메서드 오버로딩은 같은 이름의 메서드를 매개변수의 타입이나 개수에 따라 다르게 정의하는 것을 말합니다. 이를 통해 동일한 이름의 메서드가 여러 가지 형태로 사용될 수 있습니다.

다음은 오버로딩된 메서드의 예시입니다:

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

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

상속을 통한 다형성

클래스 간의 상속을 이용하여 메서드 다형성을 구현할 수 있습니다. 기본 클래스에서 정의된 메서드를 파생 클래스에서 재정의함으로써 다형성을 구현할 수 있습니다.

다음은 상속을 이용한 메서드 다형성의 예시입니다:

class Shape
{
    public virtual void Draw()
    {
        Console.WriteLine("기본 도형을 그립니다.");
    }
}

class Circle : Shape
{
    public override void Draw()
    {
        Console.WriteLine("원을 그립니다.");
    }
}

class Rectangle : Shape
{
    public override void Draw()
    {
        Console.WriteLine("사각형을 그립니다.");
    }
}

인터페이스를 통한 다형성

인터페이스를 이용하여 여러 클래스에서 동일한 메서드를 구현함으로써 다형성을 구현할 수 있습니다.

다음은 인터페이스를 이용한 메서드 다형성의 예시입니다:

interface IShape
{
    void Draw();
}

class Circle : IShape
{
    public void Draw()
    {
        Console.WriteLine("원을 그립니다.");
    }
}

class Rectangle : IShape
{
    public void Draw()
    {
        Console.WriteLine("사각형을 그립니다.");
    }
}

C#에서 메서드 다형성은 객체 지향 프로그래밍의 핵심 개념 중 하나이며, 코드의 재사용성과 유연성을 높여줍니다.

참고 문헌: