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