프로그래밍 언어/C#

C# 인터페이스 (interface)

ShovelingLife 2022. 7. 28. 09:04

인터페이스는 계약이라고 볼 수 있다. 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");
    }
}

출처 : https://smartseoullife.tistory.com/43