理解
首先看一下toSting()的源码,就是获得对象的类、类名以及hashcode生成的虚拟地址值。
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
//[I@1b6d3586
当我们的输出都是引用类型的时候,一般都只会输出地址值,也就是说调用了toString方法,所以当我们重写方法的时候,就可以得到我们想要的输出。
注意
像String、Date、File、包装类等都重写了Object类中的toString方法,使得在调用的时候返回实体内容
String a = new String("abc");
System.out.println(a);//abc
使用
public class test {
public static void main(String[] args){
Animal a=new dog();
a.age=10;
a.name="旺财";
System.out.println(a);
}
}
class Animal{
int age;
String name
@Override
public String toString() {
return "Animal{" +
"age=" + age +
", name='" + name + '\'' +
'}';
}
}
//Animal{age=10, name='旺财'}