我使用以下非常简单的代码得到了标题中提到的错误,我不知道问题是什么,我知道它很可能是一个非常简单的修复,但它已经很久了,因为我完成了编码我可以& #39; t记住任何事情。
s1.setaddress("31 Main street");
这是显示错误的代码段,我认为影响此代码的代码首先来自学生类,然后第二个代码段将成为大师级人员
@Override
public String getaddress() {
// TODO Auto-generated method stub
return address;
}
@Override
public String setaddress() {
return address;
}
人类
public abstract class Person {
protected String name;
protected String surname;
protected String address;
protected int age;
public abstract String getName();
public abstract String getsurName();
public abstract String getaddress();
public abstract String setName();
public abstract String setsurName();
public abstract String setaddress();
public abstract int age();
public String toString(){
// TODO Auto-generated method stub
return "Name: " + name + " " + surname + "Age: " + age + "\n" + "Address: " + address;
};
感谢您的帮助
答案 0 :(得分:2)
您的setAddress
方法不接受任何参数,但您尝试使用String
进行调用。
尝试:
public void setAddress(String str) {
this.address=str;
}
答案 1 :(得分:2)
您的setAddress
应接受修改address
字段的参数:
@Override
public String setaddress(String address) {
this.address = address;
}
由于这是一个重写方法,您还需要在基类中具有相同的签名:
public abstract String setaddress(String address);
您还可以删除上述声明中的返回类型String
,因为它现在变得无用。
答案 2 :(得分:1)
您的getaddress()
和setaddress()
方法是相同的,所以我认为它只是复制粘贴错字。有效setaddress()
应如下所示:
@Override
public void setaddress(String address) {
this.address = address;
}
不要忘记在抽象类中更改返回类型。