在 AS3/Flex 中,一个接口是否可以扩展另一个接口?
我已经创建了接口 A。现在我想创建另一个扩展接口 A 的接口 B。
我google了很多,但找不到任何令人信服的答案。请帮忙。
在 AS3/Flex 中,一个接口是否可以扩展另一个接口?
我已经创建了接口 A。现在我想创建另一个扩展接口 A 的接口 B。
我google了很多,但找不到任何令人信服的答案。请帮忙。
当然你可以扩展一个接口:
多个接口可以通过extends 子句由另一个接口继承,也可以通过implements 子句由一个类继承。实现接口的类的实例长于接口表示的类型。接口定义必须只包含函数定义,其中可能包括 get 和 set 方法。
请记住:有时直接试用或查看 Flex SDK 源代码会更快。;-)
${FLEX_HOME}\frameworks\projects\framework\src\mx\core\IUIComponent.as
:
package mx.core
{
...
public interface IUIComponent extends IFlexDisplayObject
{
...
在我的评论中,我说接口没有扩展;它们被实施。那应该是接口是由类使用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 使用不同的签名实现相同的方法,我预计会出现编译器错误。
接口可以扩展其他接口。类可以扩展类。看到这里的相关性了吗?就像乐高一样。
接口实现类。类实现接口。现在应该说得通了。