[英]ERROR: class not abstract and does not override abstract method
我在调试此代码时遇到困难。 我尝试了很多替代方法来消除错误,但是由于我是Java新手,所以我似乎无法指出问题所在。
public abstract class Animal {
private String name;
private String type;
public Animal(String name, String type) {
this.name = name;
this.type = type;
}
public String getName() {
return this.name;
}
public String getType() {
return this.type;
}
public abstract void speak();
}
public class Dog extends Animal{
public String getName() {
return super.getName(); }
public String getType() {
return super.getType(); }
public void speak(String name, String type){
System.out.println("arf!"); }
}
public class Ark{
static void main(String[] args){
Dog cookie = new Dog();
cookie.speak();
}
}
谢谢!
public abstract void speak();
您需要在Dog
实现
你已经实现了什么
public void speak(String name, String type)
{ System.out.println("arf!"); }
因此, Dog
是抽象的,但是您没有指定它,也没有实现不带参数的 talk speak()
。 无论如何,请删除参数。
@Override
public void speak()
{ System.out.println("arf!"); }
Abstract Speak方法的参数与实现的Dog.speak(String String)的参数不同。
您需要在Dog类中覆盖语音方法,将其更改为
public void speak()
{
System.out.println("arf!");
}
public abstract class Animal {
private String name;
private String type;
public Animal(String name, String type) {
this.name = name;
this.type = type; }
public String getName() {
return
this.name; }
public String getType() {
return this.type; }
public abstract void speak(String name, String type);
// if you want parameters in the Dog class for this method you must include them here otherwise it wont work
}
public class Dog extends Animal{
public String getName() {
return super.getName(); }
public String getType() {
return super.getType(); }
public void speak(String name, String type){
System.out.println("arf!"); }
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.