2

Global.as次のような一般的なファイルに変数があるとします。

public static const test:String = "testString";

そして別のファイルで私はその変数をオーバーライドしたいと思います。おそらく次のように:

File1.as

override var test:String = "testStringUpdated";

もちろん、これは機能していません。誰かがこれを行う方法を知っていますか?

それは実際に可能でoverrideあり、overrideこのように使用されることが想定されていますか?それとも、関数をオーバーライドするためだけですか?

前もって感謝します。

4

1 に答える 1

2

通常、変数を「オーバーライド」しません。サブクラスでそれらの値を変更するだけです (コンストラクターはこれに適しています)。

public function File1()
{
    test = "testStringUpdated";
}

文字通りのオーバーライドに関しては、セッターとゲッターをオーバーライドできます。

基本クラスでセッター/ゲッターの組み合わせとして変数を設定するだけです。たとえば、次のようになります。

class Base
{
    private var _test:String = "testString";

    public function get test():String
    {
        return _test;
    }

    public function set test(value:String):void
    {
        _test = value;
    }
}

次に、サブクラス (File1) で、値のtest取得方法を変更できます。たとえば、次のようになります。

class File1 extends Base
{
    override public function get test():String
    {
        return super.test + "Updated"; // testStringUpdated
    }
}
于 2012-07-04T10:05:10.913 に答える