为什么属性不是接口中的声明

时间:2009-07-23 20:33:05

标签: actionscript-3 interface language-design

在Actionscript 3中,我无法在接口中声明变量。 我不明白。 我知道我可以通过定义getter和setter来解决这个问题,但如果我只想要一个简单的公共属性呢?如果在设置或获取属性时有什么事情可以做,我通常会使用getter和setter,但是如果我只想存储一个值呢?

2 个答案:

答案 0 :(得分:2)

你可以这样说:接口存在,因为在你的语言中你不能从多个抽象基类继承。如果AS3允许你这样做,那么它可能没有'interfaces',而是'pure abstract classses'。

换句话说,在界面中使用属性 implementation 会导致名称冲突,从而导致其他多重继承问题(菱形)。

然而,只有一个没有实现的getter或setter应该可行。

public interface I { function get A():int; }

(我手头没有AS3编译器)

答案 1 :(得分:0)

我不是一个actioscript编程,但是接口(例如java)用于定义行为而不是状态,因此jave中的intrerfaces只是声明实现接口的类需要定义的方法。属性(或实例变量)通常不是定义行为所必需的,接口中不允许使用。