Ada*_*dam 3 abstract-class dart
我有一个抽象的 Dart 类,其中包含一些抽象方法和一个具体的实现方法,我希望在所有子类中保持一致。
\n\nIntelliJ 的 Dart 分析系统在子类中报告我的实现方法 \xe2\x80\x94 不存在具体实现,尽管我可以看到该抽象具有具体实现。
\n\n我还尝试在子类中实现该方法并调用超类,但也报告为未实现。抽象类和子类都在同一个文件中。
\n\nabstract 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}\nRun Code Online (Sandbox Code Playgroud)\n
话说
class ExpenseReport implements Exporter
Run Code Online (Sandbox Code Playgroud)
您的意思是您的 ExpenseReport 实现了 Exporter 的接口,这又意味着它必须实现 Exporter 中声明的所有方法。
如果你想从抽象 Exporter 继承实现的方法,你需要像这样扩展它:
class ExpenseReport extends Exporter
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
491 次 |
| 最近记录: |