я очень прошу. можно еще раз, другими словами, популярно пояснить — чего мы хотим? Пост #7 с демонстрацией того, как все запущено, мне в упор не понятен.
ну надо тебе иметь базовый класс, ну опиши его:
Код AS3:
public class ClassA
{
public function ClassA():void
{
}
public function methodA():String
{
return "ClassA::methodA()";
}
}
надо тебе его расширить, ну расширяй:
Код AS3:
public class ClassB extends ClassA
{
public function ClassB()
{
super();
}
override public function methodA():String
{
return "ClassB::methodA()";
}
}
и ты утверждаешь, что теперь будет так:
Код AS3:
var _a:ClassA = new ClassA();
var _b:ClassB = new ClassB();
trace(_a.methodA()); // думаешь, что выведет "ClassB::methodA()",
// потому что мы его переопределили в наследнике
или о чем вообще три страницы?
о том что:
Код AS3:
var _b:ClassB = new ClassB();
trace(_b.methodA()); // таки выведет "ClassB::methodA()",
// потому что мы его переопределили в наследнике
а ты хотел, чтобы вывело "ClassA::methodA()"? тогда зачем ты вообще его переопределял?
или ты хочешь
одной иметь в экземпляре класса B возможность вызвать и переопределенный и непереопределенный методы? тогда зачем ты вообще грузишь этими проблемами суперкласс A? Допиши в ClassB новый метод, скажем,
methodAsuper(), в котором вызываешь просто
super.methodA(). и будет твое заветное:
Код AS3:
var _b:ClassB = new ClassB();
trace(_b.methodAsuper()); // таки выведет "ClassA::methodA()",
но не в ClassA же это делать. не его головная боль, что ты там навыдумывал в наследнике.