Flash 用父类泛化对象与实现公共接口的泛化类

Flash 用父类泛化对象与实现公共接口的泛化类,flash,actionscript,Flash,Actionscript,我很抱歉,如果我的比较看起来很奇怪,但仍然试图澄清我的困惑 就拿这个例子来说 DisplayObjectContainer.addChild(DisplayObject)- 可以传入精灵、形状、MovieClip等——它们都继承DisplayObject,因此都可以添加到显示列表中 我想知道,这种行为是否与实现相同接口的类相似。我永远无法在我的项目中实现它,但我研究了实现相同接口的类,它们可以可变地相互替代。这方面的实际例子是什么(类似于我在上面用于类和子类的例子)?你的例子也可能是一个很好的

我很抱歉,如果我的比较看起来很奇怪,但仍然试图澄清我的困惑

就拿这个例子来说 DisplayObjectContainer.addChild(DisplayObject)-

可以传入精灵、形状、MovieClip等——它们都继承DisplayObject,因此都可以添加到显示列表中



我想知道,这种行为是否与实现相同接口的类相似。我永远无法在我的项目中实现它,但我研究了实现相同接口的类,它们可以可变地相互替代。这方面的实际例子是什么(类似于我在上面用于类和子类的例子)?

你的例子也可能是一个很好的例子。 您的所有对象都可以通过其方法显示实现IDisplayable

DisplayContainer可能是IDisplayable的集合

鸭子是鸟,鸭子会飞 鸵鸟是鸟,鸵鸟不会飞 飞机不是鸟,但能飞

所以,如果你实现鸟上飞,你必须说飞机是鸟。。。。 如果你实现了飞行思维,你必须说鸵鸟是飞行的东西

如果您创建一个接口IFlier,然后为duck和plane实现它,那么现在您的描述是准确的。我在这里选择了相当明显的类,但是当你深入到别人的代码中,或者在做了几个月的其他事情之后,甚至是你自己的代码中时,阅读飞机就像一只鸟,或者鸵鸟