скорее вопрос к 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
Обсуждают сегодня