目前我有一个名为Humane32的工作班,我想用这个扩展我的班级Fysikere42,我在人类,年龄和名字上有2个参数,在Fysikere42上还有一个参数。 Humane32类目前看起来像这样:
import java.util.List;
import java.util.Arrays;
import java.util.Random;
import java.util.ArrayList;
public class Humane32{
public static class Human{
private static final List<String> names = Arrays.asList("Rutger","Oscar","Aram","Noak","Hilda","Dahl");
public Random rand=new Random();
public String name;
public int age;
public Human(int age, String name){
this.age=age;
this.name=name;
}
public Human(){
this.age=rand.nextInt(101);
this.name=names.get(rand.nextInt(names.size()));
}
public String getName(){
return this.name;
}
public int getAge(){
return this.age;
}
public String toString(){
return "åldern är:"+this.age+"\n"+"namnet är:"+this.name;
}
}
public static void main(String[] args){
ArrayList<Human> humaner=new ArrayList<Human>();
int q;
for (q=0;q<=15;q++){
humaner.add(new Human());
System.out.println(humaner.get(q).toString());
}
}
}
我的新班级目前看起来像这样:
import java.util.List;
import java.util.Arrays;
import java.util.Random;
import java.util.ArrayList;
public class Fysikere42 extends Humane32{
public static class Fysikerere42{
public int year;
public Fysikere42(int age, String name,int year){
this.age=age;
this.name=name;
this.year=year;
}
public int getYear(){
return this.year;
}
}
public static void main(String[] args){
System.out.println("hej");
}
}
但是我收到了错误消息,&#34;无效的方法声明,需要返回类型&#34;。它出了什么问题?
答案 0 :(得分:1)
您在静态内部类Fysikere42
中定义Fysikerere42
的构造函数,因为名称不匹配,因此不会将其作为Fysikerere42
的构造函数读取,因此它要求这种方法的返回类型。 (因为构造函数方法不具有返回类型,但它不认为这是构造函数。)
将构造函数的名称更改为Fysikerere42
:
public class Fysikere42 extends Humane32{
public static class Fysikerere42{
public int year;
public Fysikerere42(int age, String name,int year){
this.age=age;
this.name=name;
this.year=year;
}