Actionscript中接口的主要功能是什么?

Kam*_*ari 2 flash actionscript actionscript-3

我知道包是Classes和Interfaces的集合,旨在组织和分类其内容.我也知道Classes是Objects的定义,以及它们,它们的属性/变量以及它们的函数/方法的指令.

但是,我还没有理解界面是什么,或者它真正的用途......

我在Adobe的网站上看过这个定义..:

接口

用法

interface InterfaceName [extends InterfaceName ] {}

定义一个接口.接口是定义一组方法的数据类型; 这些方法必须由实现该接口的任何类定义.

接口类似于类,具有以下重要差异:

•接口仅包含方法声明,而不包含其实现.也就是说,实现接口的每个类都必须为接口中声明的每个方法提供一个实现.

Interface方法定义不能具有任何属性,例如publicor private,但实现的方法必须标记为public实现接口的类的定义.

•接口可以通过extends语句继承多个接口,也可以通过语句通过类继承implements.

与ActionScript 2.0不同,ActionScript 3.0允许在接口定义中使用getter和setter方法.

......但是,这太模糊了,对我没有帮助.

有谁知道ActionScript中接口的用途和正确实现和/或设计?

小智 7

接口基本上让你宣布"这个类可以做这些事情."

作为一个真实世界的例子,您可能想要制作一个游戏教程,逐一突出显示屏幕上的每个不同控件.每个控件都可能闪烁或反弹以突出显示自己,因此您可以说它们实现了一个" IHighlightable"界面,让他们来处理其余的事情:

public interface IHighlightable {

    function highlight():void;

}
Run Code Online (Sandbox Code Playgroud)

然后在你的控件中:

public class Control implements IHighlightable {

    public function highlight():void {
        // Bounce and flash!
    }

}
Run Code Online (Sandbox Code Playgroud)

这意味着您可以执行以下操作:

private function highlightControl(tutorialItem:IHighlightable):void {

    tutorialItem.highlight();

}
Run Code Online (Sandbox Code Playgroud)

重要的是,您可以让一个类实现多个接口,这在类共享功能时很有用,但是让它们都扩展一个公共基类是没有意义的.