Что такое интерфейс?
Интерфейс — это какая-то штука, которая помогает взаимодействовать двум системам или, условно говоря, двум другим штуками. (С) 
Интерфейс – это контракт, который обязуется выполнить класс, выполняющий его, а с другой стороны – тип данных, задающий внешнее поведение объектов, внутреннюю структуру и реализацию которого обеспечивает класс.
P.S. Мы не говорим про то, как интерфейсы реализованы Go, C# или Java. В C++ интерфейсов, строго говоря, нет вообще ¯\_(ツ)_/¯
.