Разница между абстрактным и интерфейсным классом в C++ заключается в следующем:
- Абстрактный класс — это класс, который содержит по крайней мере одну чисто виртуальную функцию. stackoverflow.com www.cyberforum.ru Он используется для определения реализации и предназначен для наследования конкретными классами. cplusplus.com
- Интерфейсный класс не имеет реализации. cplusplus.com Он содержит только виртуальный деструктор и чисто виртуальные функции. cplusplus.com Класс, реализующий интерфейс, должен предоставить реализацию всех методов этого интерфейса. cplusplus.com При этом наследования не создаётся: один и тот же интерфейс могут реализовывать никак не связанные между собой классы. otvet.mail.ru
Таким образом, абстрактный класс создаёт иерархию наследования, а интерфейсный класс требует, чтобы класс, реализующий интерфейс, содержал реализации всех методов, определённых этим интерфейсом. otvet.mail.ru