单向度

All life is problem solving.

导航

as3中super的用法

super()在有些情况下不是可有可无的,它的主要作用是调整调用父类构造函数的顺序。
一般情况下,子类在实例化的时候,首先调用父类的构造函数。比如:

package {
    public class Father {  
        public var name: String;  
        public var age: uint;  
        public function Father()   {    
            trace("这是父类的构造函数");  
        }
    }
}

package {
    public class Child extends Father {
        public function Child() {
            trace("这是子类的构造函数");
        }
    }
}

 

它trace的结果是:

这是父类的构造函数
这是子类的构造函数
================
但有的时候,你想让父类的构造函数在子类构造函数之后运行(比如子类需要先初始化某些参数),那么你把super()放在子类构造函数的初始化语句后:

public function Child() 
{
    trace("这是子类的构造函数");
    super();
}


结果则变成了:
这是子类的构造函数
这是父类的构造函数

posted on 2013-05-21 14:31  神话情话  阅读(252)  评论(0编辑  收藏  举报