我试图在AS3中定义一个自定义的Error子类,并希望覆盖name
属性,因为我有一些错误处理代码,它根据类型(名称)记录错误。
package com.company {
public class MyError extends Error {
public function MyError() {
super("Some description.");
}
// Error 1023: Incompatible override
public override function get name():String {
return "MyError";
}
}
}
然而我得到"错误2013:不兼容的覆盖"在get name
覆盖。
有谁知道这个的正确语法?据我所知,基于name property in the Error class,它似乎是正确的。预期的结果是:
var e:Error = new MyError();
trace(e.name); // Should be "MyError"
谢谢!
答案 0 :(得分:2)
name
定义为public var name:String
。所以它是一个公共属性,没有定义getter方法。所以你不能覆盖吸气剂。要更改名称,您可以在调用super的构造函数后指定您的名称。
public function MyError() {
super("Some description.");
name = "MyError";
}