Flutter/Dart - 如何强制重写 getter 和 setter 或扩展抽象类的类中的任何方法?

Har*_*shi 5 oop dart flutter

设想:

例如,我有以下抽象类Synchronizable

abstract class Synchronizable {
  /// Getter & setter for sync status of the current data
  bool get synced;

  set synced(bool status);

  /// Method that will be called to execute the synchronization process
  Future<Either<Error, dynamic>> onSync();
}
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,该类有 3 个不同的抽象方法:

  1. synced布尔值的吸气剂
  2. synced布尔值的设置器
  3. onSync执行同步的抽象方法

对于这个问题,我在一个虚拟实现中扩展了该类:

class DummyImpl extends Synchronizable {

}
Run Code Online (Sandbox Code Playgroud)

IDE 给了我一个错误/警告,要求我必须重写抽象方法,但方法计数不是3而是2

提示实现抽象方法

当我使用提示实现时,它仅覆盖2方法。和getter方法onSync

自动完成以覆盖抽象方法

注意: 错误从类名中消失,这意味着覆盖成功并且没有错过任何要覆盖的方法。

问题):

  1. 在这种情况下如何强制覆盖该setter方法?
  2. 为什么编译器会跳过setter覆盖? (不重要但很好奇)

更新:

从我得到的响应来看,似乎 getter/setter 被编译器直接替换为成员。然而,主要问题仍然没有答案,我如何强制覆盖任何方法。

为了反映同样的意图,我也更新了问题标题。请回复以解决该部分。

谢谢。

小智 -1

因为你的 setter 与 getter 具有相同的名称。所以基本上,编译器在覆盖 getter 后会跳过 setter。您可以更改设置者的名称。