Интерфейс (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();
Это позволяет использовать различные методы реализации одной и той же идеи.