0

そのタイトルはおそらく意味をなさないので、説明しようと思います。

AS3 でクラスを作成し、いくつかの基本的な変数を持つ任意のクラスを作成し、それらの変数がそのクラス コンストラクターを介して設定されているとします。

それで..

var class = new basicClass(var1, var2);

ここで、basicClass の vars/methods などを継承する新しいクラスを作成したいので、新しいクラスには次のようなものがあるとします。

public class betterClass extends basicClass

また、コンストラクターを介して設定されるいくつかの変数も含まれている可能性があります。

今、私が混乱しているのは、親クラス (basicClass) の変数をどのように設定するか、betterClass を作成してそのコンストラクターを介して何かを行うかということです。

basicClass に値を期待するコンストラクターがある場合、それをどのように設定しますか...

var class2 = new betterClass(var3, var4)

var3とは betterClass のコンストラクター用であるためvar4、 のインスタンスがどのように設定されているかわかりませんbasicClass

これはかなり基本的なことだとわかっていますが、これまで継承を使用する必要がなかっただけです。

4

3 に答える 3

2

BasicClass を取得したので、そのコンストラクターは次のようになります。

public function BasicClass(var1:*, var2:*)
{
    //do some stuff with var1 and var2
}

//you can extend some metods too
public function niceFunction():void
{
    trace('Oh! Hello!');
}

これで、BetterClass を作成できます。

public function BetterClass(var3:*, var4:*)
{
    super(var3, var4);
    //this calls constructor of BasicClass
}

override public function niceFunction():void
{
    super.niceFunction();
    trace('Nice to meet you.');
    //This will trace: Oh! Hello! Nice to meet you.
}
于 2012-06-07T15:49:16.637 に答える
1

「スーパー」キーワードを使用して、拡張クラスから親クラスのコンストラクターを呼び出すことができます

public betterClass(){
    super(constuctorParam1,constructorParam2);// this calls the constructor of the class this class extended
}

より詳細な情報はこちら http://ntt.cc/2009/07/26/beginning-actionscript-3-super-this-setter-getter.html

于 2012-06-07T15:42:20.310 に答える
0

時々、あなたは異なる署名を持っています

package {
  public class A {
    protected var _a:String, _b:String;
    public function A(a:String, b:String) {
      _a = a;
      _b = b;
    }
  }
}

package {
  public class B extends A {
    private var _c:Number;
    public function B(c:Number) {
      super('', '');
      _c = c;
    }
  }
}

さまざまな引数とその意味に注意する必要があります。また、可能であれば便利なデフォルトを提供してください。

いくつかの追加入力です。

于 2012-06-07T15:57:06.290 に答える