首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >动态dart中的覆盖方法(如JAVA)

动态dart中的覆盖方法(如JAVA)
EN

Stack Overflow用户
提问于 2014-05-05 08:15:01
回答 3查看 1.4K关注 0票数 6

是否有方法在Dart中重写方法,如JAVA,例如:

代码语言:javascript
运行
复制
public class A {
    public void handleLoad() {
    }
}

在压倒一切时:

代码语言:javascript
运行
复制
A a = new A() {
    @Override
    public void handleLoad() {
        // do some code
    }
};
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-05-05 08:57:18

不,达特没有匿名课程。您必须创建一个扩展A并实例化它的类。

票数 9
EN

Stack Overflow用户

发布于 2014-05-08 07:01:20

不,但在Dart中,它的用处要小得多,因为您只需重新分配函数:

代码语言:javascript
运行
复制
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
}

然而,您将需要一些额外的样板来访问实例。

票数 4
EN

Stack Overflow用户

发布于 2018-07-15 16:53:12

使用类型函数:

代码语言:javascript
运行
复制
    class A {
        final Function h
        A(this.h);
        void handleLoad(String loadResult) { h(loadResult); }
    }

代码语言:javascript
运行
复制
    class A {
        final Function handleLoad;
        A(this.handleLoad);
    }

    A a = new A((String loadResult){
        //do smth.
    });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23467845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档