[英]How to Cast parent class object to child class object?
A级
包 com.test.test;
public class A {
public void printA(){
System.out.println("A");
}
}
B级
package com.test.test;
public class B extends A {
public void print(){
System.out.println("B");
}
}
C级
package com.test.test;
public class C {
public static void main(String[] args) {
B b = (B) new A();
b.printA();
b.print();
}
}
低于异常
线程“main”中的异常 java.lang.ClassCastException: com.test.test.A 无法在 com.test.test.C.main(C.java:8) 处强制转换为 com.test.test.B
如何将父类对象转换为子类对象?
在您的代码中,您没有进行任何转换,而是在进行转换。 转换(你正在做的事情(B)
)只是改变了你对一个对象的引用类型,它根本不会改变对象。 如果对象不支持新的引用类型,则转换将失败(如您所见)。
您无法转换对象,但可以基于另一个对象创建新对象。 例如,可以定义一个B
构造函数,它接受一个A
实例并使用它的信息作为初始化B
实例过程的一部分。
Java不允许将 Parent 类转换为 Child 类。 所以你得到了例外。
这是因为 Child 类是 Parent 类的子类的简单规则,即它继承自 Parent 类。 所以你永远不能执行这样的转换。
不可能将父级转换为子级,因为子级是从父级增强的,并且不可能让父级获得子级增强。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.