1
1
AS3不允许您进行重载(多个具有相同名称的函数,由返回类型或参数类型区分)只重写(子类可以替换基类实现)。 例如
是名为foo的函数的重载-不能在actionscript中执行此操作。在某种意义上,接口比重载更接近于重写,因为您“继承”了接口。
你要做的是把这两个概念混合起来。您想重载一个试图重写的接口。正如Fredrik的文章所显示的那样,即使在支持重载的语言中(其中as3不是一种语言),您也常常不能同时执行这两种操作。接口强制您具有具有精确签名的函数:
如果您正在寻找类型安全性,则在编译时无法获得它,但如果您在调用方检查返回类型,则可以在运行时获得它。 例如
我也希望能在
|
2
1
我对actionscript没有经验,因此这可能是一个可行的解决方案,也可能不是,但在C中,我通常这样做:
换句话说,我创建了一个“类型化”克隆方法(它不实现inteface,因为它在返回类型上有所不同)。然后我显式地实现接口方法,它将调用类型化克隆方法并返回结果。这是合法的行动,因为
|
3
0
继承的克隆方法总是以超级类作为返回类型。例如,所有事件类都重写
|
Rational Redneck · Java结构化方法链接 2 年前 |
KianQ · 如何从数组生成SQL Update语句 2 年前 |
AJA SMBAT · 我在获取列表而不是绑定方法时遇到问题 2 年前 |
dsdsds sdsds · .pop()从原始列表中删除元素[重复] 2 年前 |
MatÄj VondráÄek · 如何在c#方法中传递类型? 2 年前 |
AISAN · 找不到令人兴奋的符号?[重复] 2 年前 |