Что такое интерфейс
Интерфейс есть спецификация способа взаимодействия двух сущностей понятным для них обеих образом. [И всегда - двух и только двух! Пару могут составлять всё время разные объекты в разном сочетании, но спецификация распространяется только на inter face...].
Пример интерфейса показывает обычная пара - штепсельная вилка и штепсельная розетка. Вместе они составляют "разъёмное соединение", но на стороне каждого из взаимодействующих объектов имеется своя спецификация - штыри или гнезда определенного размера и на определенном расстоянии. Розетка вполне может считать вилкой любой предмет, который имеет штыри определенного диаметра, расположенные на определённом расстоянии, а вилка может считать розеткой любые гнезда, способные вместить её штыри.
Из этого примера должно быть понятно, что интерфейс является вполне точной категорией, но не имеет никакого особенного вещественного выражения. Весь интерфейс выражается только в спецификации, как должны взаимодействовать объекты и что они должны иметь и делать для этого взаимодействия.
(http://www.developing.ru/com/interface_or_protocol.html)
При программировании на C++ под интерфейсом обычно понимают полиморфный класс, который состоит из чисто виртуальных методов. Сам по себе интерфейс не представляет существенной ценности. Он дает своеобразное соглашение о способе использования объекта.