У меня есть следующая проблема в Dart:
Я хочу определить абстрактный класс ModelObjects, который имеет некоторые функции. Среди них есть функция isSame
abstract class ModelObject{
bool isSame(ModelObject object);
...
}
. Теперь я определяю класс PlayerModel следующим образом:
class PlayerModel extends ModelObject{
bool isSame(PlayerModel player){
//some code that checks if the objects are the same
}
, что приводит dart к ошибке компиляции:
PlayerModel.isSame '(' bool Function (PlayerModel) ') не является допустимым переопределением' ModelObject.isSame '(' bool Function (ModelObject) '). Dart (invalid_override)
Мне удалось чтобы обойти эту проблему, сделав ModelObjects обобщенным c
abstract class ModelObject<T>{
bool isSame(T object);}
Но это скорее обман, чем решение.
Теперь мой вопрос: есть ли более элегантный способ Чтобы решить эту проблему или абстрактные классы просто неправильный подход в этом случае?