【问题标题】:get data from subclass after casting to superclass转换为超类后从子类获取数据
【发布时间】:2014-11-18 14:37:26
【问题描述】:

大家好,我遇到了这个小问题。我有这个:

public class Animal {
    //omitted
}

public class Dog extends Animal {
   private int speed;
}

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

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

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

很抱歉问这种问题,我是 Java 新手。谢谢关心。

【问题讨论】:

  • 检查动物是否是 Dog 的实例并将其转换为 Dog。但是我相信每个动物都有速度吗?您可以在基类中将其设置为 0,并在子类中根据需要对其进行修改。
  • user2336315:谢谢,这只是一个例子:D 不是我的实际代码。

标签: java casting subclass superclass


【解决方案1】:

检查动物是否为Dog,然后进行转换

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

【讨论】:

    猜你喜欢
    • 2017-08-03
    • 1970-01-01
    • 2011-12-18
    • 1970-01-01
    • 2013-09-03
    • 1970-01-01
    • 1970-01-01
    • 2018-09-09
    • 1970-01-01
    相关资源
    最近更新 更多