运行时错误以及我应该在 class Pet 中构建什么构造函数?
Runtime error and what constructor should I have to build in class Pet?
据我了解,Goat class 对代码没有问题,
我想从一个新对象中分配前两个元素,但我不确定为什么会出现运行时错误
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;
}
这里是测试代码和报错
}
抛出错误是因为 Pet class 构造函数需要布尔值,而 Goat class 构造函数正在传递布尔值。编译器虽然在编译代码,但是在运行时java是无法找到boolean类型构造函数的。因此,不会抛出任何方法错误。
正确的代码是
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;
}
据我了解,Goat class 对代码没有问题, 我想从一个新对象中分配前两个元素,但我不确定为什么会出现运行时错误
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;
}
这里是测试代码和报错
抛出错误是因为 Pet class 构造函数需要布尔值,而 Goat class 构造函数正在传递布尔值。编译器虽然在编译代码,但是在运行时java是无法找到boolean类型构造函数的。因此,不会抛出任何方法错误。
正确的代码是
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;
}