JAVA出现异常
是一段zuoy小程序,有错误,想知道哪里错了,我应该怎么修改
class A{}
class B extends A{}
public class TestEx304a{
public static void main(String args[]) {
A a = new A();
B b = (B) a;
}
}
// 只有这样才是可行的
A a = new B(); // 父类A的引用,指向的是 子类B的实例化对象
B b = (B) a; // 这个时候 可以强转成 子类 B
如有帮助,欢迎采纳哈!
在您的代码中,您试图将一个 A 类型的对象强制转换为 B 类型的对象。由于 A 类和 B 类之间不存在继承关系,所以这样的转换是不允许的。
因此,当您运行代码时,会发生 ClassCastException 异常,报错信息如下:
Exception in thread "main" java.lang.ClassCastException: A cannot be cast to B
at TestEx304a.main(TestEx304a.java:9)
为了解决这个问题,您可以在 A 类和 B 类之间建立继承关系,例如:
class A {
// ...
}
class B extends A {
// ...
}
然后您就可以在 Test 类中安全地进行对象转换了,例如:
A a = new B();
B b = (B) a;