[c#] 제네릭을 활용한 상속과 구현

제네릭은 C#에서 코드의 재사용성을 높이고 타입 안정성을 유지하기 위한 강력한 기능입니다. 제네릭을 활용하여 상속과 구현을 하는 방법에 대해 알아봅시다.

1. 제네릭을 사용한 클래스 상속

제네릭을 사용하여 클래스를 상속받을 때, 부모 클래스의 타입을 다양하게 지정할 수 있습니다. 이를 통해 여러 다른 타입에 대해 똑같은 구현을 공유할 수 있습니다.

public class BaseClass<T>
{
    public T Data { get; set; }
    
    public void ProcessData(T data)
    {
        // 데이터 처리 로직
    }
}

public class DerivedClass : BaseClass<int>
{
    // 다양한 타입에 대한 BaseClass의 구현 코드를 공유
}

위 코드에서 DerivedClassBaseClass<int>를 상속받고 있으며, BaseClass에서 정의된 메서드와 속성을 int 타입에 맞게 사용할 수 있습니다.

2. 제네릭 인터페이스 구현

제네릭을 사용하여 여러 다양한 타입에 대해 일관된 동작을 구현하기 위해 인터페이스에 제네릭을 활용할 수 있습니다.

public interface IRepository<T>
{
    T GetById(int id);
    void Save(T entity);
}

public class Customer
{
    public int Id { get; set; }
    public string Name { get; set; }
}

public class CustomerRepository : IRepository<Customer>
{
    public Customer GetById(int id)
    {
        // 고객 정보 조회 로직
    }

    public void Save(Customer entity)
    {
        // 고객 정보 저장 로직
    }
}

IRepository 인터페이스를 구현하는 CustomerRepository 클래스는 제네릭 타입 Customer에 대해 일관된 데이터 액세스 동작을 구현합니다.

제네릭을 활용하여 상속과 구현을 함으로써, 코드의 재사용성을 높일 뿐만 아니라 안전하고 일관된 동작을 보장할 수 있습니다.

위에서 소개한 내용을 바탕으로 C#에서 제네릭을 활용한 상속과 구현에 대해 알아보았습니다.

참고 문헌: