[c#] 다형성을 이용한 런타임 오브젝트 생성

예를 들어, 공통된 부모 클래스를 상속받은 여러 자식 클래스가 있을 때, 부모 클래스의 변수를 이용하여 런타임 시에 어떤 자식 클래스의 인스턴스를 생성할지 결정할 수 있습니다. 이를 통해 코드의 유연성과 확장성을 높일 수 있습니다.

아래는 C#에서 다형성을 이용하여 런타임에 객체를 생성하는 간단한 예제 코드입니다.

// 공통된 부모 클래스
class Shape
{
    public virtual void Draw()
    {
        Console.WriteLine("Drawing a shape");
    }
}

// 부모 클래스를 상속받은 자식 클래스들
class Circle : Shape
{
    public override void Draw()
    {
        Console.WriteLine("Drawing a circle");
    }
}

class Square : Shape
{
    public override void Draw()
    {
        Console.WriteLine("Drawing a square");
    }
}

class Program
{
    static void Main()
    {
        // 부모 클래스 변수를 이용하여 런타임에 다양한 자식 클래스의 객체 생성
        Shape shape1 = new Circle();
        shape1.Draw(); // "Drawing a circle" 출력

        Shape shape2 = new Square();
        shape2.Draw(); // "Drawing a square" 출력
    }
}

위 예제에서, Shape 클래스는 Draw 메서드를 가지고 있습니다. 이 메서드를 CircleSquare 클래스에서 오버라이드하고 있으며, 다형성을 통해 런타임에 Circle 또는 Square의 객체를 생성하여 사용할 수 있습니다.

이처럼 C#의 다형성을 이용하면 실행 시에 특정 클래스의 인스턴스를 동적으로 생성하여 사용할 수 있어서 프로그램의 유연성을 높일 수 있습니다.

참고 자료: