Paradigm Shift Design

ISHITOYA Kentaro's blog.

overrideキーワード

ううむ.

package test{
  public class TestParent{
    public function sayTest():void{
      trace("test!!");
    }
  }
}

という親クラスがあったとき,

package test{
  public class TestChild extends TestParent{
    override public function sayTest():void{
      trace("test!?");
    }
  }
}

とか

package test{
  public class TestChild extends TestParent{
    public function sayTest():void{
      trace("test!?");
    }
  }
}

というようにかくと

1024: オーバーライドに対応していない関数をオーバーライドしています。

とかいうわけの分からないエラーが出る.


これは,前者はoverrideキーワードの位置が悪く,後者はoverrideキーワードを使用しなかったためにでるエラーで,ただしくは,コンパイルエラー (ActionScript 3.0)

オーバーライドに対応していない関数をオーバーライドしています。 クラス内のメソッドが基本クラスのメソッドをオーバーライドする場合は、次の例のように、override 属性を使用して明示的に宣言する必要があります。
public override function foo():void{};

とあるように

package test{
  public class TestChild extends TestParent{
    public override function sayTest():void{
      trace("test!?");
    }
  }
}

と書かなくてはならない.


エラーを見直して欲しいと思う今日この頃.