У меня есть класс Building и подклассы Barracks and House. Теперь у меня есть множество домов и казарм, определенных так:
public House[] arrSHouse;
public Barracks[] arrBarr;
Теперь мой код разработан так, что когда я хочу создать дом, дом будет следовать за моей мышью в апплете. Этот способ работает:
for(int h = 0; h < arrSHouse.length; h ++)
{
if(arrSHouse[h].held == true)
{
arrSHouse[h].isAlive = true;
arrSHouse[h].xpos = e.getX()-8;
arrSHouse[h].ypos = e.getY()-20;
}
}
Однако я хочу сделать свой код более эффективным, создав метод, который позволит мне вводить массив, такой как arrBarr, который является массивом казарм, и выполнять те же действия, что и метод, показанный выше. Это моя попытка:
public void buildingFollowMouse(Building[]type, MouseEvent e)
{
for(int a = 0; a < type.length; a ++)
{
if(type[a].held == true)
{
type[a].isAlive = true;
type[a].xpos = e.getX()-8;
type[a].ypos = e.getY()-20;
}
}
}
Однако это не работает. Единственный способ, которым это работает, если я скажу:
public void buildingFollowMouse(House[]type, MouseEvent e)
как параметры и сказать:
buildingFollowMouse(arrSHouse, e);
Это, конечно, означало бы написание другого метода для метода казарм.
Я просто хочу знать, как я могу ввести подкласс Building в своем параметре и заставить его работать так же, как он работал выше с циклом House for, с любым другим Building, который я решу создать. Как я могу это сделать?