[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
메서드를 가지고 있습니다. 이 메서드를 Circle
및 Square
클래스에서 오버라이드하고 있으며, 다형성을 통해 런타임에 Circle
또는 Square
의 객체를 생성하여 사용할 수 있습니다.
이처럼 C#의 다형성을 이용하면 실행 시에 특정 클래스의 인스턴스를 동적으로 생성하여 사용할 수 있어서 프로그램의 유연성을 높일 수 있습니다.
참고 자료: