MovieClips и Sprite являются отдельными классами, хотя и связаны друг с другом, потому что MovieClip расширяет Sprite.Таким образом, MovieClip обладает всеми теми же возможностями, что и Sprite, и добавляет еще больше, в основном связанных с анимацией на временной шкале (play (), stop (), gotoAndPlay (), addFrameScript () и т. Д.)
Поскольку MovieClip имеет все те же возможности, что и Sprite, вы можете назначить объект MovieClip переменной, типизированной как Sprite.
var myObject : Sprite = new MovieClip();
Sprite, однако, не разделяет все функции MovieClip, поэтому это не работаетнаоборот:
// Will not work
var myObject : MovieClip = new Sprite();
Если вы хотите узнать цепочку наследования для определенного класса, ознакомьтесь с документацией, например, для MovieClip :.Вы можете видеть, что он расширяет Sprite, который, в свою очередь, расширяет InteractiveObject и т. Д.
В терминах, не зависящих от языка, это называется наследованием, одной из сильных сторон которого является полиморфизм .