假设我有一个顶级函数:
在Dart中是否可以重写这个函数?
function log(String message) {
print(message);
}
在Dart中是否可以重写这个函数?
import "lib1.dart" as mylib;
void main() {
log(); // log() method defined in this file
mylib.log(); // log() method defined in lib1.dart
}
我不确定你是否可以覆盖函数,但是你不能将其包装成一个类并使用继承来覆盖方法吗?
abstract class Parent{
void log(String message){
print("parent message");
print(message);
}
}
class Child extends Parent{
void log(String message){
print("child message");
print(message);
}
}
test() => print('hallo');
test() => print('bye');
main() {
test();
}
并且您会看到编译错误(“重复定义”);
class Super {
void log(){
print("I am super.");
}
}
class MoreSuper extends Super {
void log() {
print("I am superer.");
}
}
void main() {
var s = new Super();
var ss = new MoreSuper();
s.log(); // "I am super."
ss.log(); // "I am superer."
}
我相信你现在可以使用区域执行来完成这个。
这可以用于在测试中重新映射打印命令。所有需要重定向的代码必须从runZoned()调用中调用。
请参见: https://github.com/flutter/flutter/blob/master/packages/flutter/test/foundation/capture_output.dart