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:(这到目前为止还不起作用;工厂构造函数应该返回类的子类型,而不是超级类型。希望我可以做到这一点,而不必实现每个方法。如果我不能扩展它,为什么要将其设为类?唉。。。