l'extension de la superclasse et ClassCastException

J'ai une super-classe, dont les deux méthodes que je veux remplacer. Voici mon code:

public class MyCustomClass extends SomeSuperClass {

protected MyCustomClass(params) {
    super(params);
}
@Override
public void method1() {
    super.method1();
    /* here goes my code */
}
@Override
public void method2() {
    super.method2();
    /* here goes my another code  */
}

J'ai quelques constructeur, qui passe SomeSuperClass objet en tant que paramètre, et ce que je vais faire:

MyCustomClass object;
/* now i have object of type SomeSuperClass,
but with my own method1() and method2() */
object = (MyCustomClass) MyCustomClass.item(blahblah); 
/* eclipse suggests casting, because MyCustomClass.item()
 constructor still returns SomeSuperClass object */
otherobject = OtherConstructor.object(object);
//OtherConstructor passes SomeSuperClass object 

Qui semble être de droite, mais je suis de java.lang.ClassCastException dans SomeSuperClass lors de l'exécution.

si je créer SomeSuperClassObject, je perds mon surchargée méthodes.

Casting, même si il n'y a pas d'erreurs dans eclipse, l'application se bloque.
En d'autres termes, comment je peux remplacer SomeSuperClass avec mes propres méthodes, et encore obtenir SomeSuperClass objet à utiliser avec OtherConstructor?
Si c'est important, ce code est pour l'application android.

Quel est le code pour MyCustomClass.item ?
il n'est pas remplacé, de sorte qu'il est (et il est vraiment, selon eclipse code adjoint) suffit d'utiliser la méthode de la superclasse
pour être pédant, MyCustomClass.item() n'est pas un "constructeur" ni OtherConstructor.object()

OriginalL'auteur artemy | 2010-11-23