我知道根据定义,AS3接口必须是公共的,并且其中的方法也必须公开实现。
我读了this question并且我想如果你想让一些类选择是否实现某些方法,但是有一些必须在实现任一接口的所有类中实现的通用基本方法,答案是显而易见的。
考虑到这一点,即使有了“私有实现”的想法(实际上并非如此),最好的想法仍然只是在接口之外为所有类显式定义私有方法?问题不是强迫某些类实现不同的方法,而只是这些方法的一般可见性。我猜测答案是“是”,但我想我会看到是否有人有任何见解。
答案 0 :(得分:5)
虽然AS3不支持抽象类,但为什么不定义一个要用作抽象类的类,并让它实现该接口并在该类中定义非公共方法。
interface IThing { function thisMethodIsPublic():void; } public class ThingAbstract implements IThing { //throw an Error to avoid calling the class directly, //this class needs to be subclassed //and this method overridden protected function thisMethodShouldOnlyBeVisibleToCertainClasses():void { throw new IllegalOperationError ('this method should be overriden in a subclass'); } public function thisMethodIsPublic():void { } }