有没有办法在Dart中覆盖像JAVA这样的方法,例如:
public class A {
public void handleLoad() {
}
}
当覆盖时:
A a = new A() {
@Override
public void handleLoad() {
// do some code
}
};
答案 0 :(得分:8)
不,Dart没有匿名课程。您必须创建一个扩展A
的类并实例化它。
答案 1 :(得分:2)
没有,但在Dart中它没用,因为你可以重新分配功能:
typedef void PrintMsg(msg);
class Printer {
PrintMsg foo = (m) => print(m);
}
main() {
Printer p = new Printer()
..foo('Hello') // Hello
..foo = ((String msg) => print(msg.toUpperCase()))
..foo('Hello'); //HELLO
}
但是,您需要一些额外的样板来访问实例。
答案 2 :(得分:0)
使用类型功能:
class A {
final Function h
A(this.h);
void handleLoad(String loadResult) { h(loadResult); }
}
或
class A {
final Function handleLoad;
A(this.handleLoad);
}
A a = new A((String loadResult){
//do smth.
});