AS3:覆盖'名称'子类中Error的属性

时间:2014-05-02 05:08:08

标签: actionscript-3 compiler-errors

我试图在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"

谢谢!

1 个答案:

答案 0 :(得分:2)

name定义为public var name:String。所以它是一个公共属性,没有定义getter方法。所以你不能覆盖吸气剂。要更改名称,您可以在调用super的构造函数后指定您的名称。

public function MyError() {
    super("Some description.");
    name = "MyError";
}