Ну да, так.
Как только пошла отсебятина — надо приводить к нужному
конкретному классу, у которого эта отсебятина.
Добавлено через 18 минут
То есть если ты создашь у класса Rock кастомный метод playDoors(), то не сможешь вызвать его у переменной rock:Polymorphism. Тебе придется кастовать ее к типу Rock, у которого есть этот метод:

Код AS3:
(rock as Rock).playDoors();
Тогда компиллятор пропустит.
Однако, если в переменной rock на этот момент окажется не экземпляр класса Rock, то будет ошибка уже в runtime, потому что кастинг вернет null, у которого нет метода playDoors(). Поэтому придется всю конструкцию зашить еще и в проверку:

Код AS3:
if (rock is Rock) (rock as Rock).playDoors();