Интерфейс — семантическая и синтаксическая конструкция в коде программы, используемая для специфицирования услуг, предоставляемых классом или компонентом. Интерфейс определяет границу взаимодействия между классами или компонентами, специфицируя определенную абстракцию, которую осуществляет реализующая сторона. В отличие от многих других видов интерфейсов, интерфейс в ООП является строго формализованным элементом объектно-ориентированного языка и, в качестве семантической конструкции, широко используется кодом программы.
Описание ООП-интерфейса состоит из двух частей: имени и методов интерфейса.
Имя интерфейса, которое строится по тем же правилам, что и другие идентификаторы используемого языка программирования.
Методы интерфейса. В описании интерфейса определяются имена и сигнатуры входящих в него методов, то есть процедур или функций класса.
Каждый класс может реализовывать любые доступные интерфейсы. При этом в классе должны быть реализованы все абстрактные методы, появившиеся при наследовании от интерфейсов или родительского класса, чтобы новый класс мог быть объявлен неабстрактным.
Идеальный интерфейс должен
- представлять полное и согласованное множество понятий для пользователя,
- быть согласованным для всех частей компонента,
- допускать несколько реализаций,
- иметь статическую систему типов,
- зависеть от других интерфейсов лишь частично и вполне определенным образом.