45.1 인터페이스
인터페이스는 클래스 또는 구조체에 포함될 수 있는 관련 있는 메서드들을 묶어 관리합니다. 인터페이스는 명세서(specification)(규약, 표준) 역할을 합니다. 인터페이스를 상속받아 그 내용을 구현하는 클래스는 인터페이스에 선언된 멤버(속성, 메서드 등)가 반드시 구현되어 있다는 보증을 합니다.
다음 내용은 인터페이스 내용을 추가로 정리한 것입니다. 간단히 읽고 넘어가세요.
• 인터페이스는 interface 키워드를 사용하여 만듭니다. 인터페이스는 실행 가능한 코드와 데이터를 포함하고 있지 않습니다.
• 추상 클래스처럼 다른 클래스에 멤버 이름을 미리 정의할 때 사용합니다. 추상 클래스와 다른 점은 멤버 내용을 구현하지 않고 멤버 이름만 정의합니다.
• 인터페이스에는 메서드, 속성, 인덱서 및 이벤트를 정의할 수 있습니다.
• 현실 세계에서 전 세계 표준과 같은 기능입니다.
• 단일 상속만 지원하는 클래스와 달리 인터페이스를 사용한 다중 상속이 가능합니다.
• 인터페이스 멤버는 액세스 한정자를 붙이지 않으며 항상 public이고, virtual 및 static을 붙일 수 없습니다.
• 인터페이스 내의 모든 멤버는 기본적으로 public입니다.
• C#에서 인터페이스 이름은 ICar, IFood, IComputer 형태로 대문자 I로 시작합니다.
• 인터페이스는 인스턴스화되지 않습니다. 클래스를 사용해서 인스턴스화됩니다.
I인터페이스 i = new 클래스();
• 인터페이스는 계약(contract) 의미가 강하며 속성, 메서드, 이벤트, 인덱서 등 구조를 미리 정의합니다.