ActionScript2.0で作っていたときに気になっていたのが、親クラスのコンストラクタ
って自分で呼び出さないとだめじゃなかったっけ???
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
class A { public function A() { trace("Class A constructor"); } } class B extends A { public function B() { trace("Class B constructor"); } } |
でクラスBをnewすると、”Class B constructor”だけ表示されたと思うんだ。
親呼び出したければ
1 2 3 4 5 6 7 8 |
class B extends A { public function B() { super(); trace("Class B constructor"); } } |
ってしなくちゃいけなかった気がする。
ちがったっけ?(だれに?)
でもActionScript3.0だと
最初のコードで
“Class A constructor”
“Class B constructor”
って呼ばれる。
あれ?ここ仕様変わったの?!ってかこの方が僕としてはうれしいんですけど。
ってかあっけにとられてしまいました(笑)
僕が知らなかっただけかもしれませんがね・・・(*_*)
補足(2007/07/02 3:39)
1203 | デフォルトのコンストラクタが基本クラス _ に見つかりませんでした。 | 基本クラスのコンストラクタに 1 つまたは複数の必須引数がある場合は、super() ステートメントを明示的に指定して呼び出す必要があります。 |
とオンラインマニュアルにありました。実際エラーになりました。
基底クラスのコンストラクタに引数が存在する場合は、明示的にsuperで呼び出してあげる必要があります。
親クラスのコンストラクタ自動呼び出し
Pingback: Mj-site Blog [ A new wave comes there ]
こんにちは、はじめまして。
ASのソース、参考にさせていただいております^^
二つ目のソースなんですが、
superの綴りが、supreになってるますね。
これからも頑張ってください^^
ご指摘ありがとうございます(笑)
コンパイルしていないと・・・みするもんですな・・。
直しておきました。
今後ともよろしくですー。