0

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

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

我google了很多,但找不到任何令人信服的答案。请帮忙。

4

3 回答 3

2

当然你可以扩展一个接口

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

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

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

package mx.core
{ 
...
public interface IUIComponent extends IFlexDisplayObject
{
...
于 2013-05-16T14:12:13.543 回答
0

在我的评论中,我说接口没有扩展;它们被实施。那应该是接口是由类使用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 使用不同的签名实现相同的方法,我预计会出现编译器错误。

于 2013-05-16T15:03:08.867 回答
0

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

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

于 2017-05-16T06:49:53.567 回答