Использование массива объектов в параметрах, наследование в параметрах - PullRequest
0 голосов
/ 12 марта 2012

У меня есть класс 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, который я решу создать. Как я могу это сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...