1

ActionScript 3 で継承を行ったことがないため、継承に問題があります。

この場合どうすればいいのか教えてください。

次のクラスがあるとしましょう

package
{
    public class animal
    {
        var age;
        var amountOfLegs;
        var color;
        public function animal(a,b,c)
        {
            age=a;
            amountOfLegs=b;
            color=c;
        }
    }
 }

次に、派生クラスを作りたいと思いました

package
{
    public class cat extends animal
    {
        var hairType;
        public function cat(a,b,c,d)
        {
            age=a;
            amountOfLegs=b;
            color=c;
            hairType=d;
        }
    }
}

クラス「cat」をそのようにできなかったのはなぜですか? クラスを継承し、そのパラメータを満たす方法を誰かが説明してください。道に迷いました。ありがとう。

4

2 に答える 2

1

cat クラスで、以下を置き換えます。

age=a;
amountOfLegs=b;
color=c;

super(a, b, c);

これは、ベース/スーパー クラスのコンストラクターを呼び出し、a、b、c を渡します。

于 2013-01-28T03:08:41.493 に答える
0

を使用superして親クラスのコンストラクターを呼び出し、値を渡す必要があります。

http://www.emanueleferonato.com/2009/08/10/understanding-as3-super-statement/

この例を考えてみましょう

//this class defines the properties of all Animals

public class Animal{

    private var _age:int;
    private var _amountOfLegs:int;
    private var _color:String;

    public function Animal(age:int, amountOfLegs:int, color:String){
         _age = age;
         _amountOfLegs = amountOfLegs;
         _color = color;
    }


    public function traceMe():void{

         trace("age: " + _age + "legs: " + _amountOfLegs + " color: " + _color);
    }

}

//this makes a cat
public class Cat extends Animal{
   public function Cat(){
        //going to call the super classes constructor and pass in the details that make a cat
        super(5, 4, "black");
        traceMe(); //will print age: 5 legs: 4 color: black
   }

}

もっと読む:

http://active.tutsplus.com/tutorials/actionscript/as3-101-oop-introduction-basix/

于 2013-01-28T03:10:24.657 に答える