Inheritance 当我尝试使用继承时,为什么dart会出现以下错误?

Inheritance 当我尝试使用继承时,为什么dart会出现以下错误?,inheritance,dart,Inheritance,Dart,当我跑步时: #import('package:logging/logging.dart'); class Trace extends Logger { Trace(String name) : super(name); } 达特说: 'file:///home/jim/Code/dart/trace/Trace.dart': Error: line 6 pos 26: super class constructor 'Logger.' not found Trace(Str

当我跑步时:

#import('package:logging/logging.dart');

class Trace extends Logger {
    Trace(String name) : super(name);
}
达特说:

'file:///home/jim/Code/dart/trace/Trace.dart': Error: line 6 pos 26: super class constructor 'Logger.' not found
    Trace(String name) : super(name);
下面是技术概述中的示例:

class Square extends Rectangle {
  Square(num size) : super(size, size);
}

我做错了什么?

发生错误是因为您试图扩展一个只有工厂构造函数的类(
Logger
)。正如在线程上所建议的,您应该考虑执行<代码> Logger-<代码>,而不是扩展它。

< P>类没有任何构造函数。它有工厂

您试图创建一个类,该类扩展并指定了一个默认构造函数,该构造函数试图调用的默认构造函数不存在

也许你在找这样的东西:

import'包:logging/logging.dart';
类跟踪记录器{
工厂跟踪(字符串名称){
返回新的记录器(名称);
}
}
main(){
变量i=新跟踪(“foo”);
i、 on.record.add((LogRecord){
打印(记录信息);
});
i、 严重('blaa!');
}

我想我需要进一步阅读才能理解其中的区别。似乎我无法完全扩展这个类。讨厌!这让我想起了java:(这到目前为止还不起作用;工厂构造函数应该返回类的子类型,而不是超级类型。希望我可以做到这一点,而不必实现每个方法。如果我不能扩展它,为什么要将其设为类?唉。。。