今天加班,回家打开群发现有人抱怨as3不能写泛型不能写多态。面向对象的语言的基本特征是封装、继承、多态。如果不能多态那可以说他不是面向对象的。关于泛型as也在元数据标签里面给出来了【ArrayElementType】下面举个例子。
//定义接口
package
{
public interface IMyTraceString
{
function traceString():void;
}
}
//实现一
package
{
public class MyTraceOne implements IMyTraceString
{
public function MyTraceOne() {
}
public function traceString():void {
trace("I'm one");
}
}
}
//实现二
package
{
public class MyTraceTwo implements IMyTraceString
{
public function MyTraceTwo() {
}
public function traceString():void {
trace("I'm two");
}
}
//实例
package
{
import flash.display.Sprite;
public class loadswf extends Sprite
{
public function loadswf()
{
var mytest1:IMyTraceString = new MyTraceOne();
var mytest2:IMyTraceString = new MyTraceTwo();
[ArrayElementType("IMyTraceString")]//这里面限制我的数组必须使用的类型
var concat:Array = [mytest1,mytest2];
for each (var doString:IMyTraceString in concat){
trace(doString.traceString());
}
}
}
}