Работа через интерфейс базового класса позволяет нам осуществить сокрытие реализации производного, то есть таким образом мы работаем с объектом на более абстрактном уровне, что позволяет нам, например, не заводить список типа dynamic или Object для хранения в нем производных классов, а использовать тип базового:
Основы Dart
·
Чернышев С.А.