Интерфейсы в C# исполняют роль соглашений.
В терминологии программирования интерфейс похож на класс, за исключением того, что ни один из его членов не реализован. Интерфейс группирует методы, свойства, события и индексаторы. Для него нельзя создать экземпляр: все что он содержит, — сигнатуры своих членов, причем таковыми могут быть только указанные четыре типа членов.
Интерфейс не имеет конструкторов и полей. Интерфейс не может иметь перегруженных операций.
Интерфейс объявляется практически также как класс, за исключением того, что его члены не имеют реализации (наподобие абстрактных методов). Отсутствие реализации и модификаторов доступа.
Читать далее...