actionscript-3 - 为什么属性在接口(interface)中不可声明

标签 actionscript-3 interface language-design

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

最佳答案

你可以这样说:接口(interface)的存在是因为在你的语言中你不能从多个抽象基类继承。如果 AS3 允许您这样做,它可能不会有“接口(interface)”,而是“纯抽象类”。

换句话说,在你的接口(interface)中实现属性会导致名称冲突,进而导致其他多重继承问题(菱形)。

但是,只有一个没有实现的 getter 或 setter 应该可以工作。

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

(我手头没有 AS3 编译器)

关于actionscript-3 - 为什么属性在接口(interface)中不可声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1174299/

相关文章:

c# - 将接口(interface)派生类与 NEST 和 ElasticSearch 结合使用

performance - 解释语言: The higher-level the faster?

javascript - 从 javascript/jquery 调用 AS 函数

actionscript-3 - AIR 和 sqLite : if table exists conditional

vb.net - 子接口(interface)的Load(x)函数隐藏父接口(interface)的Load()函数

java - 为什么我们需要提供两次通用信息?

Golang 推断接口(interface)

apache-flex - 柔性 : How to call an actionscript function from htmlText anchor

actionscript-3 - AS3 重置 UrlLoader 缓存

go - 获取基于原始类型的类型的reflect.Kind