Интерфейс - это тип, определяющий набор методов и свойств без реализации, и используемый для определения классов со сходной функциональностью. Интерфейс определяется с помощью ключевого слова interface. Синтаксис определения интерфейса:
interface интерфейс {
тип метод(аргументы);
тип свойство { get; set;}
}
Особенности использования интерфейсов:
- все методы интерфейса по определению являются открытыми, при этом запрещено использовать в определении методов модификаторы доступа.
- тип интерфейса можно использовать в объявлении параметров методов и переменных, но создавать объекты типа интерфейс нельзя.
- вместо изменения уже используемого интерфейса следует воспользоваться наследованием интерфейса.
Интерфейсы реализуются с помощью классов. Под реализацией классом интерфейса понимается написание в классе программного кода для каждого из объявленных в интерфейсе методов и свойств. Для реализации интерфейса необходимо:
- после имени класса, реализующего интерфейс, поставьте двоеточие и напишите имя интерфейса (если в классе необходимо реализовать несколько интерфейсов, следует разделить их имена запятыми);
- включите в класс все методы и свойства, определенные в интерфейсе;
- для каждого реализованного метода и свойства укажите модификатор доступа public.
Возможность реализации одним классов нескольких интерфейсов заменяет отсутствие множественного наследования. Для получения доступа к интерфейсу объекта применяются следующие способы:
- явное приведение типа - (интерфейс)объект;
- с помощью ключевого слова as - объект as интерфейс;
- с помощью ключевого слова is - if (объект is интерфейс).
Для реализации наследования интерфейсов в языке C# используется следующий синтаксис:
interface потомок: родитель {
}