надеюсь в этот раз я правильно понял.

Код AS3:
package {
import flash.display.Sprite;
import flash.events.Event;
/**
* @author SlavaRa
*/
public class Main extends Sprite {
use namespace $test_public;
public function Main():void {
super();
var test:Test2 = new Test2();
test._namespace1::test();
test._namespace2::test();
const namespaces:Vector.<Namespace> = new <Namespace>[_namespace1, _namespace2];
for(var i:int = 0; i < 10; i++) {
const ns:Namespace = namespaces[int(Math.random() * namespaces.length)];
test.ns::test();
}
}
private var _namespace1:Namespace = $test_namespace1;
private var _namespace2:Namespace = $test_namespace2;
}
}
namespace $test_namespace1 = "$test_namespace1";
namespace $test_namespace2 = "$test_namespace2";
class Test {
public function Test() {
super();
}
$test_namespace1 function test():void {
trace("Test.$test_namespace1::test");
}
$test_namespace2 function test():void {
trace("Test.$test_namespace2::test");
}
}
class Test2 extends Test {
public function Test2() {
super();
}
$test_namespace1 override function test():void {
trace("Test2.$test_namespace1::test");
super.$test_namespace1::test();
}
$test_namespace2 override function test():void {
trace("Test2.$test_namespace2::test");
super.$test_namespace2::test();
}
}