21 인터페이스

vencott·2021년 6월 2일
0

C#

목록 보기
21/32

인터페이스는 클래스와 같이 메서드, 속성, 이벤트, 인덱서 등을 갖지만 이를 직접 구현하지 않고 단지 정의만 한다

추상멤버로만 구성된 추상 Base 클래스와 개념적으로 유사

클래스가 인터페이스를 가지는 경우 해당 인터페이스의 모든 멤버에 대한 구현(Impementation)을 해야한다

클래스는 하나의 부모 클래스만 가질 수 있지만, 인터페이스는 여러 개를 가질 수 있다

public class MyConnection : Component, IDbConnection, IDisposable
{
   // Component를 상속
   // IDbConnection, IDisposable을 구현
}

정의

인터페이스는 C# 키워드 interface를 사용해 정의한다

멤버들은 public이 디폴트이므로 따로 접근 제한자를 명시하지 않는다

public interface IComparable
{
   int CompareTo(object obj);
}

구현

인터페이스를 구현하는 클래스에선 해당 인터페이스의 모든 멤버에 대한 구현을 제공해야 한다

public class MyClass : IComparable
{
   private int key;
   private int value;

   // IComparable 의 CompareTo 메서드 구현
   public int CompareTo(object obj)
   {
      MyClass target = (MyClass)obj;
      return this.key.CompareTo(target.key);
   }
}

출처: http://www.csharpstudy.com/

profile
Backend Developer

0개의 댓글