教学精品3天学透Actionscript第二天.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 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()方法,实际就是在

文档评论(0)

shujukd + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档