java - 无法转换为子类

标签 java oop casting

我在这个结构中有两个实体:

class Parent{
   public int type;
   //Setters and getters
}

class Child1 extends Parent{

}

我有一个 Parent 实例,我想根据条件将其转换为 Child1:

Parent parent = ...
if(parent.getType() == 1)
    Child1 child = (Child1) parent;

但它给了我ClassCastException。我该如何解决这个问题?在 java 中使用向下转型的最佳方法是什么?

最佳答案

您无法将父类型对象转换为子类型对象。您误解了继承行为。

关于java - 无法转换为子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32431997/

相关文章:

casting - 我的 GLSL 隐式转换错误位于哪里?

C++ 如何从一个模板类转换为另一个模板类?

java - 从 Java 5 SE 迁移到 Java 6 SE 后,JAXB 'date' 转换失败

arrays - 如何从数组 angularjs 中删除项目?

java - 停止使用批处理文件启动的进程

python - sqlalchemy 在表上的搜索功能作为类方法?

c++ - 便利功能是一个好习惯吗?

Java lambda 表达式、强制转换和比较器

java - 如何在 Mac 上部署具有防火墙权限的应用程序?

java - 调试 jaxb2 maven 插件