- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
教学精品 3天学透Actionscript 第二天
?
5.多态(Polymorphism)5.1多态的概念面向对象的三大特性:封装、继承、多态。从一定角度来看,封装和继承几乎都是为多态而准备的。这是我们最后一个概念,也是最重要的知识点。多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用)实现多态的技术称为:动态绑定(dynamic binding),是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。多态的作用:消除类型之间的耦合关系。现实中,关于多态的例子不胜枚举。比方说按下F1键这个动作,如果当前在Flash界面下弹出的就是AS 3的帮助文档;如果当前在Word下弹出的就是Word帮助;在Windows下弹出的就是Windows帮助和支持。同一个事件发生在不同的对象上会产生不同的结果。下面是多态存在的三个必要条件,要求大家做梦时都能背出来!5.2多态存在的三个必要条件一、要有继承;二、要有重写;三、父类引用指向子类对象。5.3 TestPolymoph.as--多态的应用,体会多态带来的好处package{public class TestPolymoph{public function TestPolymoph(){var cat:Cat=new Cat(MiMi);var lily:Lady=new Lady(cat);//var dog:Dog=new Dog(DouDou);//var lucy:Lady=new Lady(dog);lady.myPetEnjoy();}}}class Animal{private var name:String;function Animal(name:String){this.name=name;}public function enjoy():void{trace(call.);}}class Cat extends Animal{function Cat(name:String){super(name);}override public function enjoy():void{trace(Miao Miao.);}}class Dog extends Animal{function Dog(name:String){super(name);}override public function enjoy():void{trace(Wang Wang.);}}//假设又添加了一个新的类Bird class Bird extends Animal{function Bird(name:String){super(name);}override public function enjoy():void{trace(JiJi ZhaZha);}}class Lady{private var pet:Animal;function Lady(pet:Animal){this.pet=pet;}public function myPetEnjoy():void{//试想如果没有多态//if(pet is Cat){Cat.enjoy()}//if(pet is Dog){Dog.enjoy()}//if(pet is Bird){Bird.enjoy()}pet.enjoy();}}首先,定义Animal类包括:一个name属性(动物的名字),一个enjoy()方法(小动物玩儿高兴了就会叫)。接下来,定义Cat,Dog类它们都继承了Animal这个类,通过在构造函数中调用父类的构造函数可以设置name这个属性。猫应该是喵喵叫的,因此对于父类的enjoy()方法进行重写(override),打印出的叫声为Miao Maio…。Dog也是如此,重写enjoy方法,叫声为Wang Wang…。再定义一个Lady类,设置一个情节:假设这个Lady是一个小女孩儿,她可以去养一只宠物,这个小动物可能是Cat,Dog,或是Animal的子类。在Lady类中设计一个成员变量pet,存放着宠物的引用。具体是哪类动物不清楚,但肯定是Animal的子类,因此pet的类型为Animal,即pet:Animal。注意这是父类引用,用它来指向子类对象。最后在Lady类里面有一个成员函数myPetEnjoy(),这个方法中只有一句pet.enjoy(),调用pet的enjoy()方法。现在来看测试类。new出来一只Cat,new出来一个Lady,将Cat的对象传给Lady。现在Lady中的成员变量应该是pet:Animal=new Cat(MiMi)。下面,调用lady.myPetEnjoy()方法,实际就是在
您可能关注的文档
- 给大家提供点性教育题材.doc
- 工程质量监督概论讲义.doc
- 工作场的学习概念、认知基础与教学模式.doc
- 古典诗文文本.doc
- 古汉语通论简体版.doc
- 古人长寿十诀首度公开附录按摩讲解原理、操作示范.doc
- 关于落实烟草专卖局党组四季度集中学习扩大会议工作措施.doc
- 广东理工职业学院课程申报书.doc
- 贵金属交易师教程版.doc
- 国学堂—100102梁冬对话倪海厦第四讲文字版.doc
- 2025年流量传感器行业市场竞争与行业整合趋势.docx
- 防水工程材料买卖合同模板.docx
- 2025年锂电池正极材料回收技术绿色化趋势报告.docx
- 建筑资管十年绿色:2025年装配式建筑行业报告.docx
- 基于物联网技术的校园消防安全智能监测与应急课题报告教学研究课题报告.docx
- 《自动化生产线在电子制造业中的智能化设备应用与效果评估》教学研究课题报告.docx
- 小学科学教育中前概念转变的跨学科课程设计研究与实践论文.docx
- 2025年桑蚕产业五年发展趋势:丝绸深加工技术创新与市场前景报告.docx
- 2025年高端玻璃瓶包装五年设计趋势报告.docx
- 高中生通过荧光定量PCR技术研究植物细胞减数分裂过程中细胞因子信号通路调控课题报告教学研究课题报告.docx
原创力文档


文档评论(0)