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

-1 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
}
Run Code Online (Sandbox Code Playgroud)

Stu*_*ske 6

错误告诉你所有.实现接口意味着您可以使您的类达到接口的合同.接口保证:每个实现我的非抽象类都为我声明的所有抽象方法提供了一个实现.这可能是因为它们包含它,或者通过从父类继承它.

interface Animal{
public boolean roar();
 //   public boolean gender();  <-- this method
}
Run Code Online (Sandbox Code Playgroud)

如果在这里添加第二种方法,您还需要提供一个实现:

class Cat implements Animal{ 
public boolean roar(){
    return true;
}
public boolean gender() {
    return true;
}
}
Run Code Online (Sandbox Code Playgroud)

这将解决您的问题.但是boolean对于' roar'或' gender'来说似乎很奇怪.