获取对象类型——getQualifiedClassName、getQualifiedSuperclassName、is和as的比较

来源:互联网 发布:apache hadoop yarn 编辑:程序博客网 时间:2024/06/01 09:21
getQuailiedClassName可以获取该对象的类型,返回的是类名

getQualifiedSuperclassName获取上一级的类名,这个函数只能检查到上一级的类名,若继承结构复杂,可能有的继承两至三级甚至更多,在不知道继承级别的情况下,用getQualifiedSuperclassName想知道对象的继承关系链里是否存在textClass或者shapeClass,就只能通过遍历至顶级类来检验了......不但麻烦,而且效率低

is这一运算符可以检验某对象是否为指定类的实例,只要指定类在继承关系链中,都返回true。另外也包括接口。也就是说,假设my_spr是一个Sprite类的实例,那么下面的三个表达式都输出true

实现了接口以后,在舞台上假如形状,MC,文本都存在的话,你也不需要检查他们是什么类了,只要了解他们实现的接口就OK。
if(currentObj is IColorProcessor){
  (currentObj as IColorProcessor).setFillColor(newColor);
}
if(currentObj is IFilterProcessor){
  (currentObj as IFilterProcessor).setFilters(filt_arr);
}
可见,定义了接口,在处理多种类型的对象过程中会方便很多

接口和抽象类相比,多出的一个优势在于(仅限Java和AS3),一个类可以实现多个接口,但是不能继承多个类

 

0 0
原创粉丝点击