英文:
constructor CircularQueue in class CircularQueue cannot be applied to given types
问题
错误:
QueueTestHarness.java:19: 错误: 无法将类 CircularQueue 中的构造函数 CircularQueue 应用于给定类型;
testC[1] = new CircularQueue(SIZE);
^
需要: 无参数
找到: int
原因: 实际参数列表和形式参数列表的长度不同
2 个错误
我明白这表示我没有一个接受参数(int
)的构造函数,但在我的类中我有一个:
public Queue(int inMax)
{
queue = new Object[inMax];
int count = 0;
}
另外 CircularQueue
是 Queue
的子类,这在我的代码中有证据:
public class CircularQueue extends Queue
那么为什么会出现这个错误呢?
注意:我也有一个默认构造函数,似乎运行良好。
英文:
Error:
QueueTestHarness.java:19: error: constructor CircularQueue in class CircularQueue cannot be applied to given types;
testC[1] = new CircularQueue(SIZE);
^
required: no arguments
found: int
reason: actual and formal argument lists differ in length
2 errors
I understand this means I don't have a constructor taking in a parameter (int
) but in my class I do:
public Queue(int inMax)
{
queue = new Object[inMax];
int count = 0;
}
Also CircularQueue
is a subclass to Queue
and here's proof of that in my code:
public class CircularQueue extends Queue
So why is this error popping up?
Note: I also do have a default constructor and it seems to work fine.
答案1
得分: 1
朋友,Queue是一个接口,这意味着如果你想在你的类中使用它(抽象),你需要使用implements
关键字。
extends
关键字用于扩展类... 但Queue是一个接口,你的代码正在尝试扩展Queue,这是错误的。
请使用以下代码:
public class CircularQueue implements Queue
别忘了实现所有Queue方法,或者将你的类声明为抽象类。
还有一件事情,
你的CircularQueue构造函数是错误的。
将它更改为:
public CircularQueue(int inMax) {
queue = new Object[inMax];
int count = 0;
}
你的错误是因为当你有一个带构造函数的类时...
构造函数的名称必须与类名相同。
但是在你的例子中,类名是CircularQueue
,而构造函数名是Queue
。
英文:
dude, Queue is an interface which means if u want to use it (abstraction) to your class u have to use implements
keyword
the extends
works for extending of a Class... but Queue is an interface
your code is extending Queue and it is wrong
use this:
public class CircularQueue implements Queue
and don't forget to implement all Queue methods or make your class abstract
and one more thing
your constructor of CircularQueue is wrong
change it to this:
public CircularQueue(int inMax)
{
queue = new Object[inMax];
int count = 0;
}
your error is for this problem that when u have a Class with constructor ...
the constructor MUST be same name with Class name
but in your example Class name is CircularQueue
but the constructor name is Queue
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论