習慣了C++和Java的文法,以為ActionScript3也同樣支援函數重載,昨天試着寫了下面這樣一個類後發現居然報錯:Multiple constructor definitions found,原來ActionScript3并不支援我們常用的那種函數重載方式。
- public class MyClass
- {
- private var name:String = "";
- public function MyClass()
- {
- }
- public function MyClass(str:String)
- {
- this.name = str;
- }
- public function get Name():String
- {
- return this.name;
- }
- }
- public class MyClass
- {
- private var name:String = "";
- public function MyClass( arg)
- {
- if (arg.length == 0)
- {
- this.name = "default";
- }
- else if (arg.length == 1)
- {
- this.name = arg[0];
- }
- }
- public function get Name():String
- {
- return this.name;
- }
- }
- public function init():void
- {
- var c1:MyClass = new MyClass();
- Alert.show(c1.Name,"info");
- var c2:MyClass = new MyClass("hello");
- Alert.show(c2.Name,"info");
- }