我不知道为什么这不起作用,我写错了什么?
public class Testmain {
/**
* @param args
*/
public static void main(String[] args) {
Wat n1=new This("john","man");
System.out.println(((This)n1).toString());
// TODO Auto-generated method stub
}
}
为什么我将此作为输出:
This@68e26d2e
作为输出我应该得到的是:
John man
是的,我知道班级名称是随机的。所以我在类" This"中写了toString()方法,但它仍然没有用。我在子类中的超类和字段firstname
中有一个字段gender
,但现在在输出中我没有得到gender
,只有firstname
。< / p>
答案 0 :(得分:3)
您必须覆盖方法
@Override
public String toString() {
return "Name: " + name + " \n Gender:" + gender;
}
名称,性别是您在构造函数中设置的私有成员。
答案 1 :(得分:1)
覆盖toString()
This
方法
例如:
@Override
public String toString() {
return "whatever you want";
}
答案 2 :(得分:1)
This@68e26d2e
只是This
类的内存地址的十六进制表示。默认情况下,每个对象都有此对象。要拥有自己的字符串表示形式,您必须override
toString()
方法。
@Override
public String toString() {
return < your String here >;
}