[c#] 다형성과 파생 클래스의 연동

다형성(polymorphism)은 객체 지향 프로그래밍의 중요한 특징 중 하나이며, C#에서도 다형성을 지원합니다. 파생 클래스(derived class)는 기본 클래스(base class)의 기능을 상속받을 수 있습니다. 이번 글에서는 C#에서 다형성과 파생 클래스를 어떻게 연동하는지에 대해 알아보겠습니다.

다형성(Polymorphism)이란?

다형성은 같은 이름의 메서드나 속성을 다른 방식으로 구현하는 기능을 말합니다. 이를 통해 코드를 더 유연하게 만들 수 있고, 코드의 재사용성을 높일 수 있습니다. C#에서는 다형성을 구현하기 위해 가상 메서드(virtual method)와 오버라이딩(overriding)을 사용합니다.

파생 클래스(Derived Class)와 다형성 연동

파생 클래스는 기본 클래스의 멤버를 상속받을 수 있으며, 이를 통해 다형성을 구현할 수 있습니다. 다음은 파생 클래스와 다형성을 연동하는 간단한 예제 코드입니다.

using System;

class Animal
{
    public virtual void MakeSound()
    {
        Console.WriteLine("Some sound");
    }
}

class Dog : Animal
{
    public override void MakeSound()
    {
        Console.WriteLine("Bark");
    }
}

class Cat : Animal
{
    public override void MakeSound()
    {
        Console.WriteLine("Meow");
    }
}

class Program
{
    static void Main()
    {
        Animal[] animals = new Animal[] { new Dog(), new Cat() };
        foreach (var animal in animals)
        {
            animal.MakeSound();
        }
    }
}

위 예제에서 Animal 클래스는 MakeSound 메서드를 정의하고 있습니다. Dog 클래스와 Cat 클래스는 각각 MakeSound 메서드를 오버라이딩하여 각각 “Bark”와 “Meow”를 출력하도록 재정의하고 있습니다. Main 메서드에서는 다형 배열을 이용하여 DogCat의 다양한 소리를 출력하고 있습니다.

다형성을 이용하면 한 가지 타입을 사용하면서 여러 가지 서브 타입을 다룰 수 있기 때문에 코드가 더 유지보수가 쉬워지고, 확장성이 높아집니다.

결론

C#에서는 다형성과 파생 클래스를 연동하여 객체의 유연한 동작을 구현할 수 있습니다. 이를 통해 코드의 재사용성을 높이고, 유지보수성을 높일 수 있습니다. 객체 지향 프로그래밍에서는 다형성을 적절히 활용하여 유연하고 확장 가능한 코드를 작성하는 것이 중요합니다.

참고 문헌: Microsoft Docs - Polymorphism in C#

관련 읽을거리: C# 다형성의 개념과 활용