У меня есть суперкласс, два метода которого я хочу переопределить.Вот мой код:
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.