据我了解,Goat类对代码没有问题, 我想从一个新对象中分配前两个元素,但我不确定它为什么会产生运行时错误
class Pet {
public String name;
public boolean indoor;
public Pet(String name, Boolean indoor) {
this.name = name;
this.indoor = indoor;
}
public String toString(){
return name + ", " + indoor;
}
}
class Goat extends Pet {
public int age;
public String diet;
public Goat(String name, boolean indoor, int age, String diet) {
super(name, indoor);
this.age = age;
this.diet = diet;
}
这是测试代码和错误
答案 0 :(得分:-1)
抛出错误是因为,Pet类构造函数期望Boolean和Goat类构造函数传递boolean。虽然编译器正在编译代码,但在运行时java无法找到布尔类型的构造函数。因此,不要抛出任何方法错误。
正确的代码将是
class Pet {
public String name;
public boolean indoor;
public Pet(String name, boolean indoor) {
this.name = name;
this.indoor = indoor;
}
public String toString(){
return name + ", " + indoor;
}
}
class Goat extends Pet {
public int age;
public String diet;
public Goat(String name, boolean indoor, int age, String diet) {
super(name, indoor);
this.age = age;
this.diet = diet;
}