{тело_интерфейса} Тело интерфейса составляют только абстрактные методы, шаблоны свойств, а также события. Элементы интерфейса по умолчанию общедоступны. Интер- фейс не может иметь обычных методов – все элементы интерфейса должны быть абстрактными.
В языке C# разрешено одиночное наследование для классов и множествен- ное – для интерфейсов. Это позволяет придать производному классу свойства нескольких интерфейсов, реализуя их по-своему. Сигнатуры методов в интер- фейсе и реализации должны полностью совпадать. Для реализуемых элементов интерфейса в классе следует указывать спецификатор public. К этим элементам можно обращаться как через объект класса, так и через объект типа соответ- ствующего интерфейса.
Интерфейс можно представлять как «контракт» о реализации объявленных методов потомками. Таким образом, наследование интерфейса заключается в его реализации (implementation) потомками. Основная идея использования интерфейса состоит в том, чтобы к объектам разных классов можно было об- ращаться одинаковым образом. Каждый класс может определять элементы ин- терфейса по-своему. Так реализуется полиморфизм: объекты разных классов по-разному реагируют на вызовы одного и того же метода. Заметим, что в биб- лиотеке классов .NET определено множество стандартных интерфейсов, декла- рирующих желаемое поведение объектов.
Пример1