[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#에서 메서드 다형성은 객체 지향 프로그래밍의 핵심 개념 중 하나이며, 코드의 재사용성과 유연성을 높여줍니다.
참고 문헌:
- Microsoft Docs. “C# Programming Guide.” https://docs.microsoft.com/en-us/dotnet/csharp/