C# – 인터페이스를 사용해야 하는 이유

By | 2023년 6월 13일
Table of Contents

C# – 인터페이스를 사용해야 하는 이유

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

다중 상속

일반적인 클래스는 다중상속이 불가능하지만, interface 는 가능하다.

public class FooC { }
public class FooD { }

public class FooE : FooC, FooD { } // 컴파일러 오류

public interface IFooA { }
public interface IFooB { }

public class FooF : IFooA, IFooB { } // ok

객체정보 간소화

외부 서비스 등에 class 가 아닌 interface 를 파라미터로 사용함으로 해서,
복잡한 구현 코드 대신 필요한 메소드 또는 변수만 제공할 수 있다.

public interface IFooA {
    public string Foo();
}
public interface IFooB {
    public string Foo();
}

public class FooF : IFooA, IFooB
{
    string IFooA.Foo()
    {
        return "IFooA.Foo";
    }
    string IFooB.Foo()
    {
        return "IFooB.Foo";
    }
}

IFooA a = new FooF();
IFooB b = new FooF();

Console.WriteLine(a.Foo());
Console.WriteLine(b.Foo());

공통 메소드 강제

다수의 클래스에 공통으로 구현되어야 할 메소드 또는 맴버 변수를 강제할 수도 있다.

답글 남기기