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(); }
结果则变成了:
这是子类的构造函数
这是父类的构造函数