728x90
추상클래스를 이용하다 보면 2개 이상의 클래스를 상속받고 싶을 때가 있다.
class Program
{
public abstract class Sky
{
public abstract void Fly();
}
public abstract class Water
{
public abstract void Swim();
}
public class Monster : Sky, Water // 에러
{
public override void Fly()
{
Console.WriteLine("날기");
}
public override void Swim() // 에러
{
Console.WriteLine("수영중");
}
}
하늘에서는 날고 물에서는 수영하는 몬스터를 만들고 싶지만, 추상 클래스로는 2개 이상의 클래스를 상속받는 게 불가능하다.
이때 우리가 사용할 수 있는 게 바로 Interface다.
class Program
{
interface ISky { void Fly(); }
interface IWater { void Swim(); }
public class Monster : ISky, IWater
{
public void Fly()
{
Console.WriteLine("날기");
}
public void Swim()
{
Console.WriteLine("수영중");
}
}
보통 인터페이스를 생성할 때 이름 앞에 대문자 I를 넣어준다. 인터페이스를 사용하면 2개 이상의 인터페이스를 상속받을 수 있고, 인터페이스에 있는 모든 내용을 반드시 구현해주어야 한다.
728x90
'언어 > C#' 카테고리의 다른 글
[C#] 구조체(struct)란? (0) | 2022.08.29 |
---|---|
[C#] 델리게이트 체인(delegate chain) 단순한 예제 (0) | 2022.06.17 |
[C#] Span이란? (0) | 2022.06.07 |
[C#] ArraySegment를 이용하여 배열 가져오기 (0) | 2022.06.07 |
[C#] 바이트 배열을 int로, int를 바이트 배열로 (0) | 2022.06.04 |