AS3笔记(12),抽象类与接口
作者:frank 日期:2008-02-13
本文为frank的学习笔记,转载请注明原文链接
更多笔记请参看:http://www.2solo.cn/log/article.asp?id=87
抽象类:又叫抽象基类:可以包含一般类所包含的所有特性,例如,字段,属性,方法,抽象类不能被实例化他主要用在类的定义和部分实现这方面,所以他需要在扩充类中完整的扩充并实现功能.另外抽象类还包含一个很特殊的方法,叫抽象方法(这些方法基本上是没有执行代码的函数,由继承于该类的类重写(override)并提供具体实现).在Java和C#中,有abstract关键字来定义抽象类,而在As3中,并没有提供抽象类的支持,尽管abstract已经属于关键字,我们只可以通过模拟方法来实现抽象类的机制。在AS3笔记(11),适配器模式(Adapter Pattern)的范例中,Adaptee.as就是一个抽象类,而如requestB()则是一个抽象方法.
| /* 被适配者类 */ package { public class Adaptee { public function requestA():void { trace("Adaptee:requestA()"); } public function requestB() { } public function requestC():void { trace("Adaptee:requestC()"); } } } |
接口:接口是一种特殊的抽象类,用interface 关键字标记,他可以包含实例/静态方法和getter/setter方法,任何实现该接口的类就必须按照接口的定义实现这些方法.As3中的类可以实现(implements)多个接口.相对于类,接口更象是一种方法的协议,使用接口可以更好的管理模块的功能,方便整理和引用。在AS3笔记(11),适配器模式(Adapter Pattern)的范例中,ITarget.as则是一个典型的接口.
| /* 定义接口 */ package { public interface ITarget { function renamedRequestA():void; function requestA():void; function requestB():void; function requestC():void; function requestD():void; } } |
帮助中提到,接口是定义一个方法组的数据类型,其中的方法必须由实现接口的任何类定义。










