Java将父级转换为子级?

问题描述

| 这是我的代码
for (DrawableEntity entity : drawableEntityList) {
    if (entity instanceof Beam) {
        (Beam) entity.age += timeElapsed;
    }
    else if (entity instanceof Block) {

    }
}
基本上,
drawableEntityList
DrawableEntitys
中的
Vector
,我想遍历
Vector
中的所有内容。然后根据它们是子类
Beam
还是子类
Block
,我想做些不同的事情。 问题是我正在尝试更改仅子类具有的变量,我认为我可以使用(Beam)进行转换,但是它不起作用。 不能将父类转换为子类吗?     

解决方法

您的转换语法不正确。 尝试这个
if (entity instanceof Beam) {
    ((Beam) entity).age += timeElapsed;
}
else if (entity instanceof Block) {

}
    ,注意:注意“ 8”运算符 http://www.javapractices.com/topic/TopicAction.do?Id=31