C# 문법종합반 / 4주차 / 인터페이스

2023. 8. 28. 20:03C# 문법 종합반

1. 인터페이스를 사용하는 이유

1) 코드의 재사용성 : 다른 클래스에서 해당 인터페이스를 구현해 동일한 기능을 공유한다.

2) 다중 상속 제공 : C# 클래스는 단일 상속을 지원하지만, 인터페이스는 다중 상속을 지원한다. 이를 통해 더 다양한 동작을 수행할 수 있게 한다.

3) 유연한 설계 : 클래스와 인터페이스 간 느슨한 결합을 형성할 수 있다. (인터페이스는 클래스에 이런 동작을 구현해! 라고 지시하기만 하기 때문에 클래스 내부에 대한 변경 없이 인터페이스의 동작 변경 혹은 추가가 가능해진다.)

 

2. 인터페이스 구현

: 인터페이스는 클래스의 일종이 아니며, 클래스에 대한 제약 조건을 명시하는 것.

interface IMyInterface  // I로 시작한다.
{
void Method1();
int Method2(string str);  // 메서드 2개를 정의했다.
}

// 구현하기
// 인터페이스 1
public interface IItemPickable
{
    void PickUp();
}

// 인터페이스 2
public interface IDroppable
{
    void Drop();
}

// 아이템 클래스
public class Item : IItemPickable, IDroppable
{
    public string Name { get; set; }

    public void PickUp()
    {
        Console.WriteLine("아이템 {0}을 주웠습니다.", Name);
    }

    public void Drop()
    {
        Console.WriteLine("아이템 {0}을 버렸습니다.", Name);
    }
}

// 플레이어 클래스
public class Player
{
    public void InteractWithItem(IItemPickable item)
    {
        item.PickUp();
    }

    public void DropItem(IDroppable item)
    {
        item.Drop();
    }
}

// 게임 실행
static void Main()
{
    Player player = new Player();
    Item item = new Item { Name = "Sword" };

    // 아이템 주울 수 있음
    player.InteractWithItem(item);

    // 아이템 버릴 수 있음
    player.DropItem(item);
}