在参数中使用对象数组,在参数中使用继承

时间:2012-03-12 18:28:36

标签: java arrays inheritance applet

我有班级建筑和子班营房和房子。现在我有一系列像这样定义的房屋和营房:

public House[] arrSHouse;
public Barracks[] arrBarr;

现在我的代码被设计成当我想要创建一个房子时,一个房子将跟随我的鼠标在applet中。这种方式有效:

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,它是一个Barracks数组,并且执行与上面显示的方法相同的操作。这是我的尝试:

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循环工作的方式相同,我决定制作任何其他建筑物。我怎么能这样做?

0 个答案:

没有答案