んと…なんかclassなのにオーバライド出来ないとか何とかって微かに耳にする…大丈夫でけた(笑
普通に書くと怒られるので。
override public function foo():String
ってな感じで、明示的に指定する必要があるぽ。
上位へのアクセスはsuper演算子が有効なので。
super.foo()
などの書式をもちう。
で…
http://livedocs.adobe.com/flex/2_jp/docs/00001638.html
Flex は自動的にコンストラクタ内で super() メソッドを呼び出してスーパークラスのコンストラクタを実行しますが、メソッドオーバーライドでは明示的に super.methodName() を呼び出す必要があります。明示的に呼び出さないと、スーパークラスのメソッドは実行されません。
とあるはずなんだけど。
別のURIにあるサンプルには
http://livedocs.adobe.com/flex/201_jp/html/ascomponents_147_12.html
package myComponents { import mx.controls.Alert; import mx.containers.HBox; import flash.display.DisplayObject; public class HBoxWithAlert extends HBox { // Define the constructor. public function HBoxWithAlert() { super(); } // Define the override. override public function addChild(child:DisplayObject):DisplayObject { // Call super.addChild(). super.addChild(child); // Open the Alert box. Alert.show("Item added successfully"); return child; } } }
ってな感じで、コンストラクタでも明示的にcallしてたりする。
とりあえず書いておいたほうがいいのかな?
面倒なんで未テストw
…よかった「オーバライド出来ない」とかが真実だったら結構どん引きするところだった orz