2014-11-18 2 views
0

Привет, ребята, у меня эта небольшая проблема. У меня есть это:получить данные из подкласса после литья в суперкласс

public class Animal { 
    //omitted 
} 

public class Dog extends Animal { 
    private int speed; 
} 

Теперь у меня есть еще один класс, который сгенерирует итератор и бросить все его объекта к животному одного.

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

Однако некоторые из объектов - это Dog, и я не знаю, как получить атрибут «скорость» из подкласса.

Извините, что задал этот вопрос, я как бы новичок в Java. Спасибо за.

+1

Проверьте, если животное является экземпляром собаки и бросил его Собаке. Однако я считаю, что у каждого животного скорость? Вы можете установить его в 0 в базовом классе и изменить его, если это необходимо в подклассах. – user2336315

+0

user2336315: Спасибо, это всего лишь пример: D не мой фактический код. –

ответ

1

Проверьте животное является Dog, то брось

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

Он работает! спасибо кучу: D! –

+0

Добро пожаловать. –

+0

он не может проголосовать за вас, поэтому я это сделал :) – Muhammad