Интерфейс (Interface) представляет собой просто набор названий абстрактных методов без реализации. В интерфейсе указывается только список действий, а реализация действий описывается в реализующих классах.
Интерфейс – это по сути конструктивный блок, в который можно записать идеи по реализации задачи. Идеи представляют собой план по реализации задачи. Идеи, записанные на языке C#, называются интерфейсами. Они не могут исполняться самостоятельно, для работы они должны быть реализованы. Их реализация описывается в классах.
Пример интерфейса:
interface ICar
{
void drive();
int Wheels { get; set; }
}
public class Opel : ICar
{
int _wheels;
public int Wheels
{
get
{
return _wheels ;
}
set {
_wheels = value;
}
}
public void drive()
{
Console.WriteLine(_wheels);
}
}
class Program
{
static void Main()
{
Opel myOpel = new Opel();
myOpel.Wheels = 4;
myOpel.drive();
}
}
Интерфейс ICar реализован в классе Opel, который наследует интерфейс. При реализации интерфейса в классе должны быть реализованы все его методы и свойства, иначе при компиляции будет выдано сообщение о отсутствующих методах или свойствах.
Поскольку для реализации интерфейса применяется механизм наследования, то можно сказать, что интерфейс – это базовый класс без реализации. Потому можно создать переменную интерфейса и присвоить ей его реализацию. Ниже пример создания переменной интерфейса.
Создание переменной интерфейса:
ICar ncar = new Opel();
ncar.Wheels = 8;
ncar.drive();
Это позволяет использовать различные методы реализации одной и той же идеи.

