Да бе разбрах какво иска.
Ако може да се оверайтне легаси метода който създава А и да се екстендне А и да се оверайдене счупения метод ок, ако не може мисля че бих го направил така ако А не е някакъв голям обект, ако е тогава с апър каст бих го направил. Ама пак зависи ако имаш ограничено мемори каст, ако ти трябва перформанс копи. Няма начин.
Другия вариянт е да ползваш жава 7 и да си направил екстенъшн метод май се казваше
Иначе предложението на арон не е вярно, в С А и В са 2 различни обекта!!!
A legacyMethod_CreateInstanceOfA(); // part of untouchable API
class B extends A {
А static newMethod_CreateInstanceOfA(A a){
А неюА = нею В();
ретърн неюА;
}
private B(A a){
копиКонструкторНаА(а);
фиксПатч();
}
}
void main() {
A a = В.newMethod_CreateInstanceOfA(legacyMethod_CreateInstanceOfA());
a.WorkWithInstanceOfA();
}
<P ID="edit"><FONT class="small"><EM>Редактирано от cristal_reaver на 21.10.10 01:13.</EM></FONT></P>Редактирано от cristal_reaver на 21.10.10 01:15.