C# 문법종합반 / 4주차 / 인터페이스
2023. 8. 28. 20:03ㆍC# 문법 종합반
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);
}
'C# 문법 종합반' 카테고리의 다른 글
C# 문법 종합반 / 4주차 / 예외처리 (try-catch) (0) | 2023.08.29 |
---|---|
C# 문법 종합반 / 4주차 / 열거형 (0) | 2023.08.28 |
C# 문법 종합반 / 3주차 / 객체지향 프로그래밍 (Object-Oriented Programming) (0) | 2023.08.25 |
C# 문법 종합반 / 2주차 / 메서드란? (0) | 2023.08.25 |
C# 문법 종합반 / 2주차 / 컬렉션 / 배열과 리스트의 차이점 (0) | 2023.08.25 |