Основное различие между Array и ArrayList заключается в том, что Array имеет фиксированный размер, а ArrayList - нет и может постоянно расти. Так что, если вы знаете, что всегда будет только 5 вражеских объектов, то придерживайтесь Array, однако, если количество вражеских объектов растет, используйте ArrayList
EDIT:
Ваш пример ArrayList неверен. Должно быть:
for(Enemy e : enemies)
{
e.Update();
}
Когда вы перебираете ArrayList, подобный этому, e становится фактическим объектом Enemy из списка врагов. Так что вы можете просто вызвать методы Enemy на e.