子类不是抽象的,并且在添加第二个方法时不会覆盖超类中的方法

时间:2018-09-24 06:34:29

标签: java inheritance

在子类中添加第二个方法时,会出现上述错误。

package roar;

public class Roar {
    public static void main(String[] args) {
        Animal a[] = new Animal[1];
        a[0] = new Cat();
        System.out.println(a[0].roar());
    }
}

class Cat implements Animal{ 
    public boolean roar(){
        return true;
    }
}

interface Animal{
    public boolean roar();
    //   public boolean gender();  <-- this method
}

1 个答案:

答案 0 :(得分:6)

错误告诉大家。实现一个接口意味着您要按照该接口的约定来保持您的课程。接口保证:实现我的每个非抽象类都为我声明的所有抽象方法提供实现。这可能是因为它们包含它,或者是从父类继承它。

interface Animal{
public boolean roar();
 //   public boolean gender();  <-- this method
}

如果在此处添加第二种方法,则还需要提供一个实现:

class Cat implements Animal{ 
public boolean roar(){
    return true;
}
public boolean gender() {
    return true;
}
}

这将解决您的问题。但是,为booleanroar使用gender似乎很奇怪。