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

コメントをどうぞ

コメントを残す