我是面向对象的新手,我认为这是我尝试使用多态性并且也很努力地做到这一点,但是我需要帮助。我有我的DSAQueue类,该类应该构造一个Queue,但是它是由数组制成的。但是,我还有一个名为ShufflingQueue的类,该类负责将数组的所有元素向前和向后拖曳。从本质上来说,我该如何制作DSAQueue的对象并构造队列,并使用ShufflingQueue类中的方法?
public class DSAQueue
{
public static int DEFAULT_CAPACITY = 100;
//Classfields
Object[] queue = null;
int count;
//default constructor
public DSAQueue()
{
queue = new Object[DEFAULT_CAPACITY];
count = 0;
}
}
public class ShufflingQueue extends DSAQueue
{
public void enqueue(int value)
{
queue[count] = value;
count++;
}
}
public static void main(String[] args)
{
DSAQueue queue = new ShufflingQueue();
//Declare DSAqueues
queue = new DSAQueue();
//Fill the second queue up
for (int i = 0; i < 40; i++)
{
queue.enqueue(2 * i + (i / 4));
}
}
答案 0 :(得分:0)
能否请您详细说明您要完成的工作?如果我理解正确,您想运行DSAQueue类的构造函数,然后用ShufflingQueue的enqueue方法填充队列对象吗?如果是这样,那么您只需切换这两行即可:
DSAQueue queue = new ShufflingQueue();
//Declare DSAqueues
queue = new DSAQueue();
有了这个:
ShufflingQueue queue = new ShufflingQueue();
因为,如果您在基类构造函数中没有参数,则它将自动运行。如果您有一个带有参数的构造函数,则需要从派生类构造函数调用super()方法并传入参数。