Essential ActionScript3.0 読書メモ 第43回 静的メソッドと静的変数は継承されない

インスタンスメソッドインスタンス変数とは異なり、サブクラスはスーパークラスの静的メソッド・静的変数を継承しない。静的メソッドをサブクラスから呼んだ場合、エラーが発生する。

例:
public class A {
    public static function s () {
        trace("a.s() was called");
    }
}

public class B extends A {
    public function B () {
        B.s(); // エラー:A.s()への無効なアクセス
    }
}
しかし、AかBのいずれかの中で定義されている静的メソッド・静的変数は、A.s()ではなく、クラス名抜きのs()と書けば、呼び出すことができる。とはいえ、静的メソッド・静的変数の呼び出し時にクラス名を含んでおくのが賢明である。クラス名が含まれていれば、そのメソッド・変数の出処が明らかだからだ。


今日の進捗:2715→2724/20168