只是为了好玩,我想覆盖Array
并重新定义map
:
public dynamic class MagicArray extends Array {
public override function map(f:Function, thisObject:* = null):Array {
var result:Array = [];
for (var i:int = 0; i < this.length; i++) {
result.push(f(this[i]));
}
return result;
}
}
我们收到此错误:Method marked override must override another method.
咦?
所以我删除了override
关键字并再次尝试。现在,一切都很好。但是,如果我们尝试使用它:
var a:MagicArray = new MagicArray([1,2,3]);
a.map(function(x) { return x + 1; });
我们收到以下错误:
Error: Ambiguous reference to map.
那么这里发生了什么?如何覆盖map
?
答案 0 :(得分:1)
您是否将扩展程序设置为动态,并且使用命名空间请参阅此处http://help.adobe.com/en_US/as3/dev/WS5b3ccc516d4fbf351e63e3d118a9b8d829-7fde.html