Abstract класс существовал во Flutter и до null-safety. Null-safety в Dart 2.12 принес изменения в саму систему типов, сделав неnullable типы по умолчанию. Это привело к доработке некоторых существующих фич и появлению новых, но abstract class как концепция существует давно для определения общего интерфейса и частично реализованной функциональности.