[C#] 8.1.1 인터페이스 정의 및 구현 약속

인터페이스를 정의할 때는 멤버를 구체적인 구현하지 않고 캡슐화해야 합니다. 그리고 각 멤버는 묵시적으로 접근 한정이 public이며 접근 한정자를 지정할 수 없습니다.

▶ 인터페이스 정의

interface IStudy
{
    void Study(); //접근 한정자를 지정할 수 없음
}

그리고 정의된 인터페이스를 구현 약속하는 경우에는 파생과 같은 방법으로 구현 약속할 인터페이스를 지정할 수 있습니다. 그리고, 구현 약속한 인터페이스에 멤버들은 구체적으로 구현해야 합니다. 인터페이스 기반의 형식에서 약속한 멤버를 구현하는 방법에는 묵시적 인터페이스 구현과 명시적 인터페이스 구현이 있습니다. 묵시적 인터페이스 구현에서는 약속된 멤버와 같은 시그니쳐를 갖게 선언하고 public으로 접근 지정해야 합니다.

▶ 묵시적 인터페이스 구현

class Student : IStudy
{
    public void Study() //public으로 접근 지정해야 함
    {
    }
}

명시적 인터페이스 구현에서는 인터페이스 이름을 선언부에 명시하며 접근 한정자를 명시하지 않습니다.

▶ 명시적 인터페이스 구현

class Student : IStudy
{
    IStudy.Study()
    {
    }
}