我应该在类Pet中构建运行时错误和构造函数?

时间:2018-04-07 06:56:33

标签: java class runtime

据我了解,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;
    }

这是测试代码和错误

test code & error}

1 个答案:

答案 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;
    }