Customer.java:17: error: cannot find symbol
super.display();
^
symbol: method display()
1 error
这是我编译程序时发生的事情。如何在Customer
子类中显示对象数据?
import java.util.Scanner;
public class Person {
private String name;
private String address;
private String number;
//No Argument constructor//
public Person() {
name = "";
address = "";
number = "";
}
//Explicit value constructor//
public Person(String num, String nam, String add) {
number = num;
name = nam;
address = add;
}
//Accessor method//
public String getName() {
return name;
}
//Mutator method//
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getTelephoneNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public String toString() {
return name + "\n" + address + "\n" + number;
}
}
子类:
public class Customer extends Person {
public Customer(String num, String nam, String add) {
super(num, nam, add);
}
public boolean checkResponse(char response) {
if (response == 'Y') {
return true;
}
return false;
}
public void display() {
super.display();
}
}
答案 0 :(得分:3)
要使super.display()
生效,您需要在父类中使用名为display()
的方法。
由于您没有这样的方法,Java将不允许您编译的代码。
由于您似乎在尝试在打印时显示有关对象的有用信息,为什么不再次覆盖toString()
?这里需要注意的是,您没有任何更有意义的信息来表明它是Customer
而不是Person
(没有Customer
特定字段,所以继承关系是没有实际意义的。
您可以考虑添加更多信息,以区分Customer
与Person
,然后覆盖toString()
。
答案 1 :(得分:1)
发生错误是因为display()
类中没有Person
方法。因此,您无法使用super.display()
因此,将display()
中的Customer
方法更改为
public void display() {
System.out.println(super.toString());
}
答案 2 :(得分:0)
由于错误试图告诉您,super.display()
不存在。
答案 3 :(得分:0)
您没有在父类(Pesron)中定义的display()函数;
答案 4 :(得分:0)
您可以直接访问号码,姓名或地址。修改display()方法,删除super.display(),如下所示。
public void display()
{
System.out.println("Customer telephone number:" + number);
}
答案 5 :(得分:0)
Super
关键字与父类相关,Super.display()
表示您正在调用父类的显示方法。当您扩展父类时,父类是人public class Customer extends Person {
< / p>
但是没有display()
,因此你的编译错误