プロが教えるわが家の防犯対策術!

コンストラクタの記述について ―引数を持ったクラスを継承する場合―

ActionScript3.0でプログラミングをしています。
クラスの継承に挑戦したのですが、うまくいきません。
コンストラクタの記述は、何か特別なものが必要なのでしょうか?

■コンストラクタに引数なし → 成功。

■コンストラクタに引数あり → 失敗。
 エラー「No default constructor found in base class <親クラスの名前>」。

■エラーの出るソース↓
・Main.as(コンストラクタ内抜粋)
    var parent:Parent = new Parent(100);
    var child:Child = new Child(200);


・Parent.as
package {
  import flash.display.Sprite;
  
  public class Parent extends Sprite {
    protected var str:String = "親クラスのプロパティ";

    public function Parent(inNum:Number):void {
      trace("親クラス, ", str, inNum);
    }
  }
}

・Child.as
package {
  import Parent;

  public class Child extends Parent {
    public function Child(inNum:Number):void {//■エラー。
      trace("子クラス, ", str, inNum);
    }
  }
}


ご存知の方、よろしくお願いします。
よろしくお願いします!

A 回答 (2件)

trace("子クラス, ", str, inNum);



super(inNum);
に書き換えたら、出ることはでますね。
「親クラス, 親クラスのプロパティ 200」とでますが^^;

参考になりますか?
    • good
    • 0
この回答へのお礼

1年以上遅れてしまいましたが、
ご回答いただきありがとうございました!

当時、ものすごくテンパっていたので
お返事せずそのまま忘れてしまいました……。

お礼日時:2012/02/01 16:08

こんばんは。



AS3はよくわからんのだが・・・、
>No default constructor found in base class
というメッセージから判断するに、
親クラスに、
public function Parent():void {
}
を追加すればいいのかな?
そもそもオーバーロードできないのかな?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました!

非常に助かりました。
メッセージ、ちゃんと読めるようにならないといけないですね......

お礼日時:2012/02/01 16:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!