我以为我之前做过这个,也许是在C ++中。情况就是这样。
var costMonthlyArray=[];
var query = new Parse.Query(Services);
query.exists("costMonthly");
query.find({
success: function (results) {
for (var i = 0; i < results.length; i++) {
var object = results[i];
var cost=object.get('costMonthly');
costMonthlyArray.push(cost);
console.log(cost);
}
},
error: function (error) {
alert("Error: " + error.code + " " + error.message);
}
});
如果我这样称呼,我会收到错误
public abstract class SuperClass
{
public methodname ( SuperClass superc )
{
// do stuff
}
}
public class SubClass extends SuperClass
{
}
它告诉我没有名为&#34; methodname(SubClass)&#34;的方法。它不想使用SubClass的SuperClass部分并将其传递给&#34; methodname(SuperClass)&#34;。但是,如果我删除&#34;摘要&#34;关键字,没有问题。
java允许在参数中传递抽象类吗?
答案 0 :(得分:3)
一旦我修复了代码的错误,你的方法就缺少一个返回类型:
public class Foo {
public static void main(String[] args) {
SubClass subc1 = new SubClass();
SubClass subc2 = new SubClass();
subc1.methodname ( subc2 );
}
}
abstract class SuperClass
{
public void methodname ( SuperClass superc )
{
System.out.println("do stuff");
}
}
class SubClass extends SuperClass
{
}
使超类和子类非公开,所以我可以把所有东西都塞进一个文件中。我假设你在不同的文件中有这些类,因为超类和子类都是公共的。当我编译并运行它时:
C:\Users\ndh>%JAVA_HOME%\bin\javac Foo.java
C:\Users\ndh>java Foo
do stuff
它工作正常。
当我第一次编译原始代码时,我收到了这个错误:
C:\Users\ndh>%JAVA_HOME%\bin\javac Foo.java
Foo.java:12: error: invalid method declaration; return type required
public methodname ( SuperClass superc )
^
1 error
所有方法都必须具有返回类型。构造函数没有返回类型,但它们必须与类相同,因此不应该有歧义。 javac正确地指出了问题所在。
也许您正在使用产生不太清晰的错误消息的IDE?