오늘 배운 내용
- 인터페이스(interface)
인터페이스
- 일종의 약속을 만들고, 인터페이스를 적용한 클래스에 대해 이 약속을 강제시키는 것이다.
- 인터페이스는 내부에 구현을 강제할 메서드를 가지고, 이를 적용받은 클래스에서 구현하지 않으면 우리에게 잊고 구현하지 않았음을 상기시켜 준다.(
에러)
- 인터페이스는 메서드와 자동구현 프로퍼티만을 가질 수 있고, 이외의 필드는 가질 수 없다.
- 인터페이스는 참조타입이다
public interface IInteractable
{
public void Interact();
}
public abstract class BaseClass
{
public abstract void debi();
}
인터페이스 사용 예시
using System;
public class Tester
{
public void Run()
{
IInteractable[] interactables = {new Chair(), new Npc()};
foreach (IInteractable interactable in interactables)
{
interactable.Interact();
}
}
}
public class Npc : IInteractable
{
public void Interact()
{
Console.WriteLine("안녕하세요 용사님");
}
}
public interface IInteractable
{
public void Interact();
}
public interface IBreakable
{
public void Break();
}
public class Item
{
}
public class Chair : Item, IInteractable, IBreakable
{
public void Interact()
{
Console.WriteLine("앉기");
}
public void Break()
{
Console.WriteLine("깨짐");
}
}
- 필요한것들을 인터페이스로 잘게 잘게 만들어놓고 필요한 기능들을 해당 클래스가 필요하다면 넣어주면된다.
- 인터페이스를 사용하면 개방폐쇄 원칙을 사용 할수있다.