인터페이스는 계약이라고 볼 수 있다. interface는 클래스가 아니기 때문에 다중 상속이 가능하다. 인터페이스는 추상 메서드만 0개 이상 담고 있는 추상 클래스라고 봐도 무방하다.
특징
- Method만을 포함할 수 있다.
- 비어 있는 인터페이스 정의가 가능하다.
- 자식 클래스에서 구현할 때, 반드시 public 접근 제한사를 명시해야 한다. (인터페이스명을 직접 붙이면 생략 가능)
- 인터페이스명을 직접 붙이는 경우에는 반드시 인터페이스로 형변환해야 호출이 가능하다.
- C#에서는 property가 메서드로 구현되기 때문에 인터페이스에 포함 가능하다.
interface IFlyable
{
void Fly();
}
interface IRunnable
{
void Run();
void Stop();
}
abstract class Fly
{
public abstract void CFly();
}
class FlyingCar : Fly, IRunnable, IFlyable
{
public override void CFly()
{
Console.WriteLine("Car Fly");
}
public void Run()
{
Console.WriteLine("Car Run");
}
public void Run()
{
Console.WriteLine("Car Run");
}
public void Stop()
{
Console.WriteLine("Car Stop");
}
}
'프로그래밍 언어 > C#' 카테고리의 다른 글
C# 자기 자신 참조 (this) / 위임 생성자 (delegating constructor) (0) | 2022.07.28 |
---|---|
C# 추상 클래스 (abstract) (0) | 2022.07.28 |
C# 클래스 접근 제한자 (Access Modifier) (0) | 2022.07.27 |
C# 힙 구조 (Heap) (0) | 2022.07.26 |
C# 구조체 (struct) 클래스 (class) 차이 (0) | 2022.07.26 |