我有-
class A {
// contains certain set() and get() methods
}
class B extends A {
public A getAotherMethod() {
A a = new A();
// Contains some logic
return a
}
}
class C extends B {
// contains certain set() and get() methods
}
class D {
public Object getMethod() {
B b = new B();
// Contains some logic
return b.getAnotherMethod()
}
}
public static void main(String[] args) {
A a = new A();
B b = new B();
C c = new C();
D d = new D();
c = (C) d.getMethod(); // This is giving me ClassCastException
}发布于 2012-04-04 14:45:06
d.getMethod();这将在内部调用b.getAnotherMethod(),它具有
A a = new A();
// Contains some logic
return aA类的对象不能强制转换为类C
我们可以将子类对象分配给超类引用,但不能将超类对象分配给子类引用,这是您在这种情况下所做的。
https://stackoverflow.com/questions/10006106
复制相似问题