gpt4 book ai didi

actionscript-3 - Actionscript 3 接口(interface) - 我不理解它(初学者问题)

转载 作者:行者123 更新时间:2023-12-05 00:37:14 27 4
gpt4 key购买 nike

根据我的阅读,接口(interface)基本上是方法的类,对吧?如果两个类实现了相同的接口(interface),那么它们都应该具有接口(interface)中描述的方法。

现在,这有什么用?假设我想调用 foo();。

public interface IExample {
function foo(om:String):void;
}

class HungryClass implements IExample{
public function foo(om:String):void{
trace("OM NOM NOM!!! Thank you for feeding me" + om);
}
}

class FullClass implements IExample{
public function foo(om:String):void{
trace("No thanks, I don't want to eat" + om);
}
}

//somewhere..
instanceOfEitherClass.foo("cake");

接口(interface)如何帮助?如果没有接口(interface),这不会工作吗?

谢谢

最佳答案

假设您有一个继承自抽象类的具体类。在这种情况下,您只需执行以下操作:

public class ConcreteClass extends AbstractClass

现在,如果您需要具体类也从 EventDispatcher 继承呢?类(class)?您不能执行以下操作:
public class ConcreteClass extends AbstractClass, EventDispatcher

但是,您可以实现 EventDispatcher类(class) IEventDispatcher接口(interface),然后使用 EventDispatcher对象如下:
internal class ConcreteClass extends AbstractClass implements IEventDispatcher
{
private var _eventDispatcher:EventDispatcher;

public function ConcreteClass()
{
_eventDispatcher = new EventDispatcher(this);

}// end function

public function addEventListener(type:String,
listener:Function,
useCapture:Boolean = false,
priority:int = 0,
useWeakReference:Boolean = false):void
{
_eventDispatcher.addEventListener(type, listener, useCapture, priority, useWeakReference);

}// end function

public function dispatchEvent(event:Event):Boolean
{
return _eventDispatcher.dispatchEvent(event);

}// end function

public function hasEventListener(type:String):Boolean
{
return _eventDispatcher.hasEventListener(type);

}// end function

public function removeEventListener(type:String,
listener:Function,
useCapture:Boolean = false):void
{
_eventDispatcher.removeEventListener(type, listener, useCapture);

}// end function

public function willTrigger(type:String):Boolean
{
return _eventDispatcher.willTrigger(type);

}// end function

}// end class

使用组合和接口(interface)的这种组合,您可以将具体类用作 AbstractClass。和 EventDispatcher目的。

接口(interface)非常适合允许“不相关的对象相互通信”。您可以找到更多关于接口(interface)的信息 here .

关于actionscript-3 - Actionscript 3 接口(interface) - 我不理解它(初学者问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7132068/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com