Есть еще такой момент: о полиморфизме начинают вспоминать (как и о всем другом), когда его нет. А нужен он тогда, когда у вас появляется лес из if'ов. Т.е. когда у вас есть несколько функций внутри которых вы повторяете одно и то же условие - это значит, что вам нужно переделать код так, чтобы это не происходило. Разные языки этого добиваются по-разному, но в любом случае назовут это полиморфизмом.
В AS3 такой механизм обеспечивается через наследование, или интерфейсы. Это помогает выделить отдельные части кода связанные логически в соответствующие им сущности (классы), а другой части кода оставаться универсальной по отношению к ним работать "по контракту" полученному либо от интерфейса, либо из описания класса, что и есть, практически, одно и то же.
Пример:

Код AS3:
function feed(animal:Animal):void
{
if (animal.kind == Animal.DOG)
{
animal.eat(new DogFood());
}
else if (animal.kind == Animal.CAT)
{
animal.eat(new CatFood());
}
else
{
//...
}
}
function strikeAndListen(animal:Animal):String
{
var animalSays:String;
if (animal.kind == Animal.DOG)
{
animalSays = "bark";
}
else if (animal.kind == Animal.CAT)
{
animalSays = "purr";
}
else
{
//...
}
return animalSays;
}
Напрашивается сделать так:

Код AS3:
class Dog extends Animal
{
public function feed():void { ... }
public function strikeAndListen():String { ... }
}
class Cat extends Animal
{
public function feed():void { ... }
public function strikeAndListen():String { ... }
}
Последний пример использует полиморфизм. Т.как у нас появилось несколько функций с одинаковым названием и одинаковым поведением, но в разных классах (поли - значит "много", "морфизм" - математический термин, который проще продемонстрировать на свойстве геометрических фигур быть "одинаковыми", если к ним были приложены трансформации переноса, поворота, отражения, или их комбинации. Но в более широком смысле, это свойство сохранения структуры между различными носителями этой структуры.)
Полиморфизм, в этом контексте, это неформальный антоним мономорфизма, т.как мономорфизм обязывает, что если f(g(x)) = f(y(x)), то g = y. Т.е., неформально, для существования морфизма обязательным условием является тот факт, что если функции ведут себя одинаково, то это одна и та же функция. Соответственно, в полиморфизме, допускается, что при f(g(x)) = f(y(x)), g != y (что мы и видим в примере с кошкой и собакой - у нас есть две функции, которые ведут себя одинаково, но не равны).