是否有方法在Dart中重写方法,如JAVA,例如:
public class A {
public void handleLoad() {
}
}
在压倒一切时:
A a = new A() {
@Override
public void handleLoad() {
// do some code
}
};
发布于 2014-05-05 08:57:18
不,达特没有匿名课程。您必须创建一个扩展A
并实例化它的类。
发布于 2014-05-08 07:01:20
不,但在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
}
然而,您将需要一些额外的样板来访问实例。
发布于 2018-07-15 16:53:12
使用类型函数:
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.
});
https://stackoverflow.com/questions/23467845
复制相似问题