FlashActionScript30接口的创建及运用.doc

FlashActionScript30接口的创建及运用.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
FlashActionScript30接口的创建及运用

接口(interface和implements关键字) 前面我们讲过,通过类的继承可以实现父类和子类的继承关系,但是呢,继承只允许一个父类。如果需要实现几种继承关系的话,那么在AS3里边呢就要使用到接口,英文名字叫做interface。接口的声明与类的声明类似,有它自己的关键字。但是接口本身比类要抽象些,有时候也会被人解读做抽象的类。它只包含方法的声明,而不包含方法具体的实现方式,那方法呢必须由实现接口的类来具体定义。 比如我们现在要为这个Pet类定义一个接口,那这个定义接口呢也是用ActionScript文件。大家注意看,在定义接口的时候要用到关键字interface。在as当中呢,大家都习惯前面用大写字母I(interface的首写字母)后面用容易辨认的名称,比如这整个接口我们就叫IPet。IPet里边一共有3种方法,第一是吃,第二是睡,第三是跑。大家注意看,这3个方法它本身是没有用公共方法或者私有方法去区别的。它只是定义了这3个方法,具体实现呢,要到去实现这个接口的具体类当中去实现。那么,现在我们保存一下。 这个,类和类之间继承我们用的是extents这个关键字。同样我们要去实现新的接口,我们还是用extents这个关键字。那大家注意,这里面呢我们定义了IpetCopy这样一个新的接口。那这个接口呢,本身我使用了关键字interface,后边呢它还使用了关键字extents,它扩展了原来的IPet类。也就是说在原来IPet类的3个方法之外,它还可以再定义新的方法,比如这个IPetCopy里边新追加了一个方法叫copy。我们同样保存一下。 接下来,来看一下接口的实现。在讲解接口实现之前呢,我们还是要建一个原型类,也就是我们前边所说的Pet类。一般呢,我们在这种父类当中,有可能会做一些技术处理,防止它被实例化。这个Pet类我们暂定在概念当中它是不会被实例化的。那现在大家可以看到,它声明了两个属性,第一个master定义了一个字符串“Horidream”;第二个呢我还为它定义了一个name,也就是这个Pet的名称,它是没有初始值的。同时呢,我还为它定义了一个公共方法action,这个action实际上在后边我们还可以做一些覆盖(override)的处理。这个就是Pet的结构。同样,保存。 现在我们来看具体实现的方式,我们可以实现一个小狗的具体的类。这个类呢我们要继承Pet类,同时还要实现IPet这个接口。大家可以看具体代码。首先,package,然后使用关键字class来定义Dog类,Dog类呢本身是要继承Pet类的,同时它还要通过implemtnts关键字来启用IPet接口。那么,IPet接口都有哪些呢?大家可以看到,下面有实现IPet接口的全部内容。那另外呢,它继承了Pet类,同样有action这个方法。同时Pet还有name这样一个字符串变量名,那么,我们在Dog的构造函数当中给name提供一个参数,这个参数在实例化的同时是要赋给name这个属性的。注意this.name = name;中。后边的name代表的是参数,前边这个name代表变量名。this这个关键字指该实例,当实例化的时候,该实例的name属性是要被赋予这个name变量提供的值的。一般是这样写法,前后2个代表的意义是不一样的,前边是名称,后边是具体的值,因为“=”这是个赋值号吧。我们也覆盖了原来的action,在这个action当中呢是让小狗输出“汪汪叫”。同时eat的具体方法将输出“主人喂(小狗的名称)吃东西”,sleep这个方法是要输出“(小狗的名称)睡着了”,然后run是要输出“(小狗的名称)欢快地跳着”。这个就是Dog类的具体实现。它本身里面既继承了Pet类的一些属性和方法,同时它也实现了IPet这个接口。我们来把它保存一下。 我们具体实例化后的结果,我们还是用test.fla文件。注意,刚刚我们已经在Dog里边定义了IPet接口里边声明的3个方法。第一个action是它的父类实现的方法,下面run,eat,sleep是我们要实现的接口里面的方法。我们来看一下输出结果。在Dog构造函数里边是需要提供一个名称的,这个名称将赋给Dog一个名字。这样,我在构造函数当中向它提供一个字符串“来福”。大家来看,第一输出了“汪汪叫”父类实现的方法,然后“来福欢快地跳着”“Horidream喂来福吃东西”“来福睡着了”实现了IPet这个接口来定义的3个方法。 如果我们定义了多个接口,实际上,在应用当中也是可以由一个类实现多个接口的。这个在具体的例子当中,比如说我们还要实现IPetCopy这个接口里面copy这个方法,那我们实际上也可以在Dog类里面IPet后面加上IPetCopy中间用逗号隔开。相应的在下面加上copy方法具体的实现内容。然

文档评论(0)

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

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

1亿VIP精品文档

相关文档