скорее вопрос к dart. 
                  
                  
                  У меня есть базовый абстрактный класс:
                  
                  
                  abstract class CartFood extends Equatable {
                  
                  
                    int get id;
                  
                  
                  
                  
                  
                    @override
                  
                  
                    List<Object?> get props => [id]; //из Equatable
                  
                  
                  }
                  
                  
                  Есть другой класс унаследованный от этого базового
                  
                  
                  class _TestCartFood implements CartFood {
                  
                  
                    @override
                  
                  
                    final int id;
                  
                  
                  
                  
                  
                    _TestCartFood(this.id)
                  
                  
                  
                  
                  
                    @override
                  
                  
                    List<Object> get props => [id]; //Без повторной реализации показывается ошибка компиляции
                  
                  
                  }
                  
                  
                  Вопрос почему компилятор требует, чтоб props был реализован и в конечном классе. Почему ему не хватает определения в базовом классе?
                  
                  
                
потому что implements – это имплементация интерфейса класса, реализация при этом не наследуется. Хотите наследование реализации, используйте extends
а вообще, equatable не рекомендую. Хотите нормальных дата классов – юзайте freezed
Обсуждают сегодня