Только так не скомпилируется, да и проще мижно:

Код AS3:
var curClass:Class = (this as Object).constructor as Class;
return new curClass() as BaseObject;
Только все равно смысла в этом не много, т.как если нужно переопределить этот метод, то толку от всех этих ухищрений будет не много. Легче просто создать новый экземпляр нужного типа в переопределенном методе, и понятнее будет, и потом не будете удивлятся почему каст не проходит.