인터페이스는 클래스나 구조체에서 구현해야 하는 “규칙”을 정의하는 기능이다. C#에서 인터페이스는 다중 상속을 지원하고, 객체의 일관성을 유지하는 중요한 역할을 한다.

인터페이스란

인터페이스(interface)는 클래스나 구조체에서 반드시 구현해야 할 메서드, 속성, 이벤트, 인덱서 등을 정의하는 추상적인 타입이다.

  • 구현부가 없는 메서드만 선언
  • 다른 클래스에서 반드시 구현해야 함
  • 다중 상속이 가능
// 인터페이스 정의
public interface IAnimal
{
    void MakeSound();  // 구현부 없는 메서드 (추상 메서드)
}

// 인터페이스 구현 (클래스에서 인터페이스 상속)
public class Dog : IAnimal
{
    public void MakeSound() // 반드시 인터페이스의 메서드를 구현해야 함
    {
        Console.WriteLine("멍멍!");
    }
}
public class Cat : IAnimal
{
    public void MakeSound()
    {
        Console.WriteLine("야옹!");
    }
}

class Program
{
    static void Main()
    {
        IAnimal myDog = new Dog();
        myDog.MakeSound();  // "멍멍!" 출력

        IAnimal myCat = new Cat();
        myCat.MakeSound();  // "야옹!" 출력
    }
}

인터페이스의 특징

메서드의 구현부가 없다.

public interface IExample
{
    void PrintMessage(); // 구현부 없음
}

다중 상속 지원

public interface IFlyable
{
    void Fly();
}

public interface ISwimmable
{
    void Swim();
}

// 다중 인터페이스 구현 가능
public class Duck : IFlyable, ISwimmable
{
    public void Fly()
    {
        Console.WriteLine("오리가 난다!");
    }

    public void Swim()
    {
        Console.WriteLine("오리가 난다!");
    }
}

class Program
{
    static void Main()
    {
        Duck duck = new Duck();
        duck.Fly();   // "오리가 난다!"
        duck.Swim();  // "오리가 난다!"
    }
}

태그: ,

카테고리:

업데이트:

댓글남기기