Kam*_*ari 2 flash actionscript actionscript-3
我知道包是Classes和Interfaces的集合,旨在组织和分类其内容.我也知道Classes是Objects的定义,以及它们,它们的属性/变量以及它们的函数/方法的指令.
但是,我还没有理解界面是什么,或者它真正的用途......
我在Adobe的网站上看过这个定义..:
接口
用法
interface InterfaceName [extends InterfaceName ] {}定义一个接口.接口是定义一组方法的数据类型; 这些方法必须由实现该接口的任何类定义.
接口类似于类,具有以下重要差异:
•接口仅包含方法声明,而不包含其实现.也就是说,实现接口的每个类都必须为接口中声明的每个方法提供一个实现.
•
Interface方法定义不能具有任何属性,例如publicorprivate,但实现的方法必须标记为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)
重要的是,您可以让一个类实现多个接口,这在类共享功能时很有用,但是让它们都扩展一个公共基类是没有意义的.
| 归档时间: |
|
| 查看次数: |
399 次 |
| 最近记录: |