Коллекция Java с полиморфными ссылками - PullRequest
1 голос
/ 28 июня 2011

Я новичок в программировании на Java и хотел бы понять, как здесь правильно работать с полиморфными ссылками.

Предположим, у нас есть следующий (абстрактный) код в C ++:

List<Fruit*> lstFruit;
...
// collect apples here
while (...)
{
  Fruit* apple = new Apple("green");
  lstFruits.append(apple);
}
...
lstFruit[i]->doSomething(); // here is our virtual method

Java не позволяет мне создавать коллекцию List со ссылками на базовый класс abstract.Что мне делать в этой ситуации?Моя цель - работать с различными объектами дочерних классов повсеместно, независимо от того, каков их класс на самом деле.

1 Ответ

5 голосов
/ 28 июня 2011

Вы можете создать общую коллекцию с классом astract:

List<Fruit> l = new ArrayList<Fruit>();
l.add(new Apple());
l.get(0).someFunctionOnFruit();
...