在转换为超类后从子类获取数据

时间:2014-11-18 14:37:26

标签: java casting subclass superclass

大家好我有这个小问题。我有这个:

public class Animal {
    //omitted
}

public class Dog extends Animal {
   private int speed;
}

现在我有另一个类生成一个迭代器并将其所有对象强制转换为Animal。

while(it.hasNext()) {
   Animal animal = (Animal) it.next();
}

然而,有些对象是Dog,我不知道如何从子类中获取属性“speed”。

很抱歉提出这样的问题,我对Java很新。谢谢你的关注。

1 个答案:

答案 0 :(得分:1)

检查动物是否为Dog,然后施放

if (animal instanceof Dog) {
    ((Dog)animal).getSpeed();
}