Ausweitung der Oberklasse und classcastexception-Fehler

Ich habe eine Oberklasse, die beiden Methoden, die ich überschreiben möchten. Hier ist mein 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  */
}

Habe ich einige Konstruktor, der vergeht, SomeSuperClass-Objekt als parameter, und was ich als Nächstes tun:

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 

Scheint richtig zu sein, aber ich bin immer java.lang.Classcastexception-Fehler in SomeSuperClass während der Ausführung.

ist, wenn ich SomeSuperClassObject, verliere ich meine überschriebenen Methoden.

Beim Gießen, auch wenn es keine Fehler in eclipse, Anwendung stürzt ab.
In anderen Worten, wie kann ich das überschreiben SomeSuperClass mit meinem eigenen Methoden, und immer noch SomeSuperClass-Objekt für die Verwendung mit OtherConstructor?
Wenn es wichtig ist, diesen code für android-app.

Was ist der code für MyCustomClass.item ?
es ist nicht überschrieben, so ist es (und es ist wirklich laut eclipse-code-Assistent) verwenden Sie einfach Superklasse-Methode
zu pedantisch, MyCustomClass.item() ist nicht ein "Konstruktor" noch ist OtherConstructor.object()

InformationsquelleAutor artemy | 2010-11-23

Schreibe einen Kommentar