我在调试此代码时遇到了困难。我已经尝试了很多替代方法来摆脱错误,但我似乎无法指出什么是错误的,因为我是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();
}
}
谢谢!
答案 0 :(得分:2)
public abstract void speak();
您需要在Dog
您已实施的内容
public void speak(String name, String type)
{ System.out.println("arf!"); }
因此Dog
是抽象的,但您尚未指定,除非您实施了speak()
没有参数。删除参数,无论如何你没有使用它们。
@Override
public void speak()
{ System.out.println("arf!"); }
答案 1 :(得分:0)
抽象语音方法与您实现的Dog.speak(String String)具有相同的参数。
答案 2 :(得分:0)
您需要覆盖Dog类中的speak方法,将其更改为
public void speak()
{
System.out.println("arf!");
}
答案 3 :(得分:0)
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!"); }
}