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

3
我有一个抽象的Dart类,其中包含一些抽象方法和一个具体的已实现的方法,我希望在所有子类中保持一致。IntelliJ的Dart分析系统报告说,在子类中没有具体的实现方法,即使我可以看到抽象类有一个具体的实现。我还尝试在子类中实现该方法并调用超类,但也报告未实现。抽象类和子类都在同一个文件中。
abstract class Exporter {
  List<String> getHeaderRow();
  List<dynamic> getEntryAsRow(EntriesData entry);

  /// Concrete implementation
  dynamic getVal(dynamic value) {
    return null;
  }
}

// ExpenseReport underlined in red: missing concrete implementation of getVal
class ExpenseReport implements Exporter {
  List<String> getHeaderRow() {
    return [];
  }

  List<dynamic> getEntryAsRow(EntriesData entry) {
    return [];
  }

//  dynamic getVal(dynamic value) {
//    super.getVal(value); // IntelliJ reports "getval" as abstract in superclass
//  }

}
1个回答

6

class ExpenseReport implements Exporter

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

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

class ExpenseReport extends Exporter

谢谢!我甚至都没注意到那个小错误。 - undefined
这个工作方式有点愚蠢。Dart需要更新一下。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接