方法覆盖和多态

Ada*_*am 6 c# inheritance

我正在尝试创建一个允许用户进入酒店房间的程序.该程序应检查房间是否空闲,然后分配一个免费房间(如果有的话).我有多种房型,如单人房,双人房,双人房等,都需要从基层继承Room.

这是我目前的代码.

public class Room 
{
    public static bool[] av = { false, true, false };

    public bool availability()
    {
        bool a = false;
        foreach (var roomAv in av)
        {
            a = a || roomAv;
        }
        return a;
    }

    public bool availability(int room)
    {
        return av[room];    
    }

    public int allocate()
    {
        if (availability())
        {
            int room = 0;
            while (!av[room])
            {
                room++;
            }
            av[room] = false;
            return room;
        }
        else
        {
            return -1;
        }
    }

    public static void roomStatus()
    {
        for (int i = 0; i < av.Length - 1; i++)
        {
            Console.WriteLine(i + av[i].ToString());
        }

    }
}

class SingleRoom
{

}
Run Code Online (Sandbox Code Playgroud)

我在房间类中定义的功能需要可以被所有不同的房间类型使用,但每个房间都有自己独立的数组,说明它们是否可用.我怎样才能做到这一点?我如何为每个类访问这些函数,但是在那里有自己独立的数组,而不是像我现在那样只在'av'数组上执行它们.

JNF*_*JNF 0

你把数组作为static,这意味着对数组的所有访问都会到达同一个对象。

删除它,每个人都会有自己的。

根据评论 -static标识符也应该从roomStatus方法中删除。