IntelliJ 报告抽象类缺少具体方法的实现,但方法是在抽象类中实现的?

Ada*_*dam 3 abstract-class dart

我有一个抽象的 Dart 类,其中包含一些抽象方法和一个具体的实现方法,我希望在所有子类中保持一致。

\n\n

IntelliJ 的 Dart 分析系统在子类中报告我的实现方法 \xe2\x80\x94 不存在具体实现,尽管我可以看到该抽象具有具体实现。

\n\n

我还尝试在子类中实现该方法并调用超类,但也报告为未实现。抽象类和子类都在同一个文件中。

\n\n
abstract class Exporter {\n  List<String> getHeaderRow();\n  List<dynamic> getEntryAsRow(EntriesData entry);\n\n  /// Concrete implementation\n  dynamic getVal(dynamic value) {\n    return null;\n  }\n}\n\n// ExpenseReport underlined in red: missing concrete implementation of getVal\nclass ExpenseReport implements Exporter {\n  List<String> getHeaderRow() {\n    return [];\n  }\n\n  List<dynamic> getEntryAsRow(EntriesData entry) {\n    return [];\n  }\n\n//  dynamic getVal(dynamic value) {\n//    super.getVal(value); // IntelliJ reports "getval" as abstract in superclass\n//  }\n\n}\n
Run Code Online (Sandbox Code Playgroud)\n

Ale*_*sky 6

话说

class ExpenseReport implements Exporter
Run Code Online (Sandbox Code Playgroud)

您的意思是您的 ExpenseReport 实现了 Exporter 的接口,这又意味着它必须实现 Exporter 中声明的所有方法。

如果你想从抽象 Exporter 继承实现的方法,你需要像这样扩展它:

class ExpenseReport extends Exporter
Run Code Online (Sandbox Code Playgroud)