В С ++ коде выглядит примерно так:
Клас интерфейс:
class IInterfaceExample
{
public:
virtual void Method1() = 0;
virtual void Method2() = 0;
};
Класс, который унаследовал этот интерфейс и реализовал его:
class CSomeClass : public IInterfaceExample
{
public:
// some public members
private:
// some private members
void Method1()
{
// do something
}
void Method2()
{
// do something
}
};
Объявление интерфейса, с помощью которого будем обращаться к функциям, реализованных в классе-потомке:
IInterfaceExample *InterfecePtr = new CSomeClass;
Обновление
Так, виртуальный класс только описывает интерфейс (но не реализует).
Может существовать несколько потомков, каждый из которых по-своему будет реализовывать интерфейс.
InterfecePtr будет обращаться к той реализации, которую ей присвоят,
в данном случае CSomeClass.
Такое явление называется динамическим полиморфизмом.
Интерфейс - набор правил для полного взаимодействия, проще говоря, в нашем случае это набор функций, каждая из которых отвечает за какое-то действие.
Интерфейс это просто набор функций, без реализации, поэтому один интерфейс реализовывать другой не может.
Один интерфейс может только наследовать другой.
Например, есть интерфейс, "создание" в котором есть функции "бегать" и "ходить".
А есть унаследованный от него интерфейс "собака" и "кошка".
В интерфейсе "собака" унаследованные функции "бегать" и "ходить" и добавлена функция "лаять".
А в интерфейсе "кошка" унаследованные функции "бегать" и "ходить" и добавлена функция "мьявкать".
Тогда уже интерфейсы собака и кошка реализуютса в определенных классах.