Тип элементов в Vector
Добавлено: 10 июл 2004, 14:44
Внимательно выслушав ответы на предидущие вопросы, решил задать ещё один 
Как известно класс java.util.Vector содержит обьекты класса Object.
Есть класс Station,
есть класс ProcStation extends Station.
У каждого из них есть метод draw():
в Station рисуется прямоугольник,
в ProcStation вызывается super.draw(), чтобы нарисовать прямоугольник и дополнительно рисуются линии..
Обьекты классов Station и ProcStation добавляются в вектор и потом рисуются:
((Station) vector.elementAt(i)).draw();
Но в этом случае метод draw класса ProcStation вызван не будет.
Я решаю эту проблему так (это всё в цикле, ясное дело, происходит):
Но это опять же не красиво, и должен быть способ это проще сделать.
Может знает кто?

Как известно класс java.util.Vector содержит обьекты класса Object.
Есть класс Station,
есть класс ProcStation extends Station.
У каждого из них есть метод draw():
в Station рисуется прямоугольник,
в ProcStation вызывается super.draw(), чтобы нарисовать прямоугольник и дополнительно рисуются линии..
Обьекты классов Station и ProcStation добавляются в вектор и потом рисуются:
((Station) vector.elementAt(i)).draw();
Но в этом случае метод draw класса ProcStation вызван не будет.
Я решаю эту проблему так (это всё в цикле, ясное дело, происходит):
Код: Выделить всё
Class tempClass = vector.elementAt(i).getClass();
Class stationClass = (new Station()).getClass();
Class procStationClass = (new ProcStation()).getClass();
if (tempClass == stationClass) ((Station) vector.elementAt(i)).draw();
else if (tempClass == procStationClass) ((ProcStation) vector.elementAt(i)).draw();
Может знает кто?