Я думаю, что вы пропустили вызов size++;
из конструктора V3Radiator
.
В этом случае правильные размеры:
v2.size - 5
v3.size - 15
V2Radiator
import java.util.List;
class V2Radiator {
int size = 0;
V2Radiator(List<SimUnit> list) {
for(int x = 0; x < 5; x++) {
list.add(new SimUnit("V2Radiator"));
size++;
}
}
}
V3Radiator
import java.util.List;
class V3Radiator extends V2Radiator {
V3Radiator(List<SimUnit> lglist) {
super(lglist);
for(int g = 0; g < 10; g++) {
lglist.add(new SimUnit("V3Radiator"));
size++;
}
}
}
Некоторое объяснение внесенных мною изменений:
Вы должны использовать интерфейс List <> вместо ArrayList <> в своем конструкторе, чтобы вызывающая сторона могла принять решение о реализации этого интерфейса.
Вы должны добавить параметр type в этот список, чтобы вызывающая сторона не могла передать, например, List в ваш конструктор
Я сделал метод для поддержки добавляющих пар как это следующим образом:
public static void MapRouteWithOptionalFormat(this RouteCollection routes,
string name,
string url,
object defaults)
{
Route implicitRoute = routes.MapRoute(name + "-ImplicitFormat",
url,
defaults);
implicitRoute.Defaults.Add("format", string.Empty);
Route explicitRoute = routes.MapRoute(name + "-ExplicitFormat",
url + ".{format}",
defaults);
}
Можно изучить использование ограничений для создания этой работы с обычными маршрутами.
ОБНОВЛЕНИЕ: на самом деле я неправильно читал вопрос. Другой ответ является корректной вещью сделать на данный момент. Или создайте пользовательский маршрут. Мы смотрим на идею дополнительных сегментов как возможная будущая функция.