我有 -
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
}
最佳答案
d.getMethod();
这将在内部调用b.getAnotherMethod(),其中有
A a = new A();
// Contains some logic
return a
A 类的对象无法转换为C 类
我们可以将子类对象分配给父类(super class)引用,但我们不能将父类(super class)对象分配给子类引用,什么是在这种情况下由您完成。
关于java - ClassCastException 冒险,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10006106/