ActionScript 3中关于多态的理解
来源:互联网 发布:kali linux 女神 编辑:程序博客网 时间:2024/06/05 20:33
函向下转换:(例如在基类类型的数组中存放着不同的子类类型对象,就需要向下转换,针对具体的子类类型进行针对性编程)主要是为了针对具体的子类类型编写程序。
private var _shapeArray:Array=new Array();protected function generateShapeArray():void{ for(var i:int=0;i<50;i++) { if(Math.random()>0.5) { add(new Circle(this)); }else{ add(new Rect(this)); } }}protected function add(obj:myShape):void{ _shapeArray.push(obj);}generateShapeArray();for(var i:uint=0;i<_shapeArray.length;i++){ var tempShape:myShape=pop(); if(tempShape is Circle)handleCirle(tempShape as Circle); if(tempShape is Rect)handleRect(tempShape as Rect);}多态应用关键在于函数的形参类型(一般都是接口,基类)隐式转换上。当把一个子类对象传入一个形参类型为基类的函数时,编译器不会报错的,当然子类对象转换成了父类类型,如果在该函数中把传入该函数的实参传给在该函数中调用另一个形参类型为子类的函数,则出错,需要向下转换才行 。
package{import flash.display.Sprite;public class chapter10 extends Sprite{public function chapter10(){var sClass:Sub=new Sub();bRelationS(sClass);}private function bRelationS(obj:Base):void{obj.bFun();bRelationS2(obj as Sub); // 如果为bRelationS2(obj);将出错}private function bRelationS2(obj:Sub):void{obj.bFun();}}}
基类
package{internal class Base{public function Base(){}internal function bFun():void{trace("类(Base)的成员函数");}}}
子类package{internal class Sub extends Base{public function Sub(){}override internal function bFun():void{trace("类(sub)的成员函数");}}}
- ActionScript 3中关于多态的理解
- oc中关于多态的理解
- 关于ActionScript中那些你不知道的事情
- 关于ActionScript中那些你不知道的事情
- 关于ActionScript中 那些你不知道的事情
- 关于Flex 4&ActionScript 3和JavaScript的交互
- 一些关于ActionScript 3.0性能的优化
- 关于ActionScript 3.0 中方法重写和继承的发现(运行时多态,原理同Java)
- 关于多态的理解
- 关于多态的理解
- 关于多态的理解
- 关于多态的理解
- 关于多态的理解
- ActionScript 3.0中中位图的处理
- 关于Actionscript 3加载外部swf
- 关于Actionscript 3中给Flash传参数方法(一)
- actionscript中获取函数的名称
- ActionScript中键盘事件的处理
- 常用的网址
- memory leak check tool: free
- delete 与delete[]
- WIN7 文件夹删不掉,提示无此文件夹!!
- MFC 调用VB dll
- ActionScript 3中关于多态的理解
- 抉择
- IOS 应用的I18N
- BigDecimal 的加减乘除和比较
- Fedora 14下用yum安装openoffice
- 内存泄露检测工具:free
- 串口驱动分析之samsung.c
- i386和X86各是什么意思
- vb调用vc++dll文件