Начал мучать еще один вопрос
Есть некий базовый класс BaseBuilding, у которого есть статический метод

Код AS3:
public static function getIcon():Sprite
который возвращает иконку строения. Каждый класс наследник соотвественно этот статический метод переписывает.
Дальше, есть класс BuildMenu, который показывает окошко с этими иконками строений. Для этого у него есть массив с классами конкретных построек (ConcreteBuilding1, ConcreteBuilding2, ... etc).

Код AS3:
private var buildings:Array = [
ConcreteBuilding1,
ConcreteBuilding2,
//...
];
При формировании сетки с иконками происходит примерно следующее

Код AS3:
for(var i:int = 0; i < buildings.lenght; i++)
{
var BuildingClass:Class = buildings[i];
var buildingIcon:Sprite = BuildingClass.getIcon();
//...
}
так вот, проблема в том, что оно то конечно все сработает, но при этом код является «ненадежным», потому что я не могу «гарантировать», что статический метод вызовется именно у класса наследника BaseBuilding.
Несколько слов о том, зачем это вообще мне надо.
-Во-первых это удобно, когда не нужно создавать для каждой иконки свой отдельный класс.
-Во-вторых, оттуда же, выбрав постройку, я могу отправить класс объекту, который будет создавать постройки на карте, например:
при клике на иконку:

Код AS3:
Ground.build(ConcreteBuilding1);
реализация:

Код AS3:
public static function build(BuildingClass:Class):void
{
var building:BaseBuilding = new BuildingClass(param);
//...
}
и опять таки здесь тоже было бы неплохо решить задачу о том, чтобы сделать указание на то, что класс должен быть наследником BaseBuilding, чтобы гарантировать, к примеру, возможность передачи ему в конструктор параметров.
Вобщем такой вот вопросец: возможно ли привести Class к типу BaseClass, так чтобы он продолжал быть обектом-классом? Или может быть вообще есть решение лучше чем заниматься такой морокой?