【问题标题】:AS3/Flex : Interface extends interfaceAS3/Flex:接口扩展接口
【发布时间】:2013-05-16 12:53:36
【问题描述】:

在 AS3/Flex 中,一个接口可以扩展另一个接口吗?

我已经创建了接口 A。现在我想创建另一个扩展接口 A 的接口 B。

我用谷歌搜索了很多,但找不到任何令人信服的答案。请帮忙。

【问题讨论】:

  • 接口未扩展;它们被实施。所以一个接口可以像类一样“实现”另一个接口。
  • 正确。我刚刚在博客上阅读了一些理论问题。我想让我问你们是否有人知道它是否可以在 AS3 中实现。感谢您的快速回复。
  • 什么博客?我们在为你做功课吗?
  • @Reboog711:不明白你的意思an interface can "implement" another interface
  • 我会发布一个正式的答案;我想。但是,看起来@splash 已经完成了 90%。

标签: actionscript-3 apache-flex flex4


【解决方案1】:

当然你可以扩展interface:

多个接口可以被另一个接口通过 extends 子句或类通过 implements 子句。实例 实现接口的类的类型长于类型 由接口表示。接口定义只能包含 函数定义,可能包括 get 和 set 方法。

请记住:有时直接试用或查看 Flex SDK 源代码会更快。 ;-)

${FLEX_HOME}\frameworks\projects\framework\src\mx\core\IUIComponent.as:

package mx.core
{ 
...
public interface IUIComponent extends IFlexDisplayObject
{
...

【讨论】:

  • 这是正确的。只有在不同的接口中设置一个成员的 get-er 和 set-er 时,扩展接口才会出现问题。
【解决方案2】:

在我的评论中,我说接口没有被扩展;它们被实施。那应该是接口是由使用implement关键字的类实现的。当您希望单个接口“扩展”多个接口时,只需使用 extends 关键字并用逗号分隔它们。

取这个接口,IMyFirstInterface:

public interface IMyFirstInterface {
 // method definitions here
}

然后是另一个接口,IMySecondInterface:

public interface IMySecondInterface {
 // method definitions here
}

两者都是“独立的”,这意味着它们与另一个界面没有任何关系。但是,第三个接口可以同时扩展它们,如下所示:

public interface IMyThirdInterface extends IMyFirstInterface, IMySecondInterface{
 // method definitions here
}

您的类将实现接口,如下所示:

public class myClass implements IMyThirdInterface{
 // other class stuff
}

myClass 需要包含在 iMyThirdInterface、IMyFirstInterface 和 iMySecondInterface 中定义的所有方法,因为它实现了扩展 IMyFirstInterface 和 IMySecondInterface 的 IMyThirdInterface。

在我的头顶上;我不知道如何处理“碰撞”。如果 IMyFirstInterface 和 IMySecondInterface 使用不同的签名实现相同的方法,我预计会出现编译器错误。

【讨论】:

    【解决方案3】:

    接口可以扩展其他接口。 类可以扩展类。 看到这里的相关性了吗? 就像乐高积木。

    接口实现类。 类实现接口。 现在应该说得通了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-09
      • 2018-11-28
      • 2020-09-07
      • 1970-01-01
      • 2023-03-22
      • 2023-04-08
      • 1970-01-01
      • 2012-11-06
      相关资源
      最近更新 更多