У меня есть суперкласс, который два метода я хочу переопределить. Вот мой код:расширение суперкласса и ClassCastException
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 */
}
У меня есть конструктор, который передает объект SomeSuperClass в качестве параметра, и то, что я делать дальше:
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
Это кажется правильным, но я получаю Java. lang.ClassCastException в SomeSuperClass при выполнении.
Если я создаю SomeSuperClassObject, я потеряю свои методы переопределения.
С отливкой, даже если в затмении нет ошибок, сбой приложений. Другими словами, как я могу переопределить SomeSuperClass своими собственными методами и все еще получить объект SomeSuperClass для использования с OtherConstructor? Если это важно, этот код предназначен для приложения для Android.
Что такое код для MyCustomClass.item? – Powerlord 2010-11-23 21:04:53
это не чрезмерно, так что это (и это действительно так, по словам помощника по eclipse code) просто используйте метод суперкласса – artemy 2010-11-23 21:15:56
, чтобы быть педантичным, `MyCustomClass.item()` не является «конструктором» и не является «OtherConstructor.object»() ` – 2010-11-23 21:19:03