Правила использования интерфейсов:

Интерфейс -это набор сигнатур методов, семантическая и синтаксическая конструкция в коде программы, используемая для специфицированния  услуг, предоставляемых классом или компонентом.

Интерфейс, своего рода стереотип, являющийся аналогом чистого абстрактного класса, в котором запрещена любая реализация.

В имени интерфейса следует начинать с буквы I Это дает возможность другим программистам работающим с вашим кодом понять что это интерфейс.

 

  • Невозможно создать экземпляр интерфейса.
  • Интерфейсы и члены интерфейсов являются абстрактными. Интерфейсы не имеют реализации в C#.
  • Интерфейс может содержать только абстрактные члены (методы, свойства, события или индексаторы).
  • Члены интерфейсов автоматически являются открытыми, абстрактными, и они не могут иметь модификаторов доступа.
  • Интерфейсы не могут содержать константы, поля, операторы, конструкторы экземпляром, деструкторы или вложенные типы (интерфейсы в том числе).
  • Класс или структура, которые реализуют интерфейс, должны реализовать члены этого интерфейса, указанные при его создании.

 

  • Интерфейс может наследоваться от одного или нескольких базовый интерфейсов.
  • Базовый класс также может реализовать члены интерфейса с помощью виртуальных членов. В этом случае производный класс может изменить поведения интерфейса путем переопределения виртуальных членов.
  • Если класс реализует два интерфейса, содержащих член с одинаковой сигнатурой, то при реализации этого члена в классе оба интерфейса будут использовать этот член для своей реализации.
  • Если члены двух интерфейсов с одинаковой сигнатурой методов должны выполнять различные действия при их реализации, необходимо воспользоваться явной реализацией члена интерфейса-техникой явного указания в имени члена имени интерфейса, которому принадлежит данный член. Это достигается путем включения в имя члена класса имени интерфейса с точкой. Данный член в производном классе будет помечен по умолчанию как скрытый.

Преимущество использования интерфейсов:

  • Класс или структура может реализовать несколько интерфейсов (допустимо множественное наследование от интерфейсов).
  • Если класс или структура реализует интерфейс, она получает только имена и сигнатуры метода.
  • Интерфейсы определяют поведение экземпляров производный классов.
  • Базовый класс может обладать ненужным функционалом, полученным от других его базовых классов, чего можно избежать, применяя интерфейсы.

Реализация интерфейсов:

Интерфейсы могут быть реализованы как мы видим в коде выше, и на рисунке ниже:

Однако интерфейсы могут и наследоваться, это происходит когда один интерфейс наследуется от другого:

 

Обновлено: 18.02.2018 — 12:57

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.