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