[c#] 연산자 오버로딩과 다형성
C#은 다형성(polymorphism)을 지원하는 객체지향 프로그래밍 언어로, 연산자 오버로딩(operator overloading)을 통해 다형성을 활용할 수 있습니다.
1. 연산자 오버로딩 (Operator Overloading)
연산자 오버로딩은 사용자가 정의한 데이터 타입에 대해 기본 연산자(+, -, *, / 등)의 동작을 다시 정의하는 것을 의미합니다.
public static CustomClass operator +(CustomClass a, CustomClass b)
{
// Custom addition logic
return new CustomClass();
}
위의 예시에서는 CustomClass
에 대해 +
연산자를 재정의하는 방법을 보여줍니다. 이를 통해 사용자 정의 데이터 타입에 대해 원하는 연산 동작을 정의할 수 있습니다.
2. C#의 다형성 (Polymorphism in C#)
C#은 다형성을 지원하여 같은 이름의 메서드나 연산자를 다양한 방식으로 사용할 수 있습니다.
가상 메서드 (Virtual Methods)
가상 메서드는 서브클래스에서 재정의(override)될 수 있는 메서드로, 다형성을 구현하는데 사용됩니다.
public class BaseClass
{
public virtual void Display()
{
Console.WriteLine("Base class display method");
}
}
public class DerivedClass : BaseClass
{
public override void Display()
{
Console.WriteLine("Derived class display method");
}
}
위의 예시에서 DerivedClass
는 BaseClass
의 Display
메서드를 재정의하여 다형성을 활용합니다.
추상 클래스 (Abstract Classes)와 인터페이스 (Interfaces)
추상 클래스와 인터페이스는 다형성을 구현하는데 사용되는 중요한 도구로, 서로 다른 클래스들이 동일한 메서드나 연산을 구현할 수 있도록 합니다.
연산자 오버로딩과 다형성은 C#에서 객체지향 프로그래밍을 더욱 유연하고 강력하게 만들어주는 기능입니다.
위 내용은 C#에서 연산자 오버로딩과 다형성에 대한 간략한 소개이며, 보다 자세한 내용은 Microsoft의 공식 문서를 참고하시기 바랍니다.