首先 所有的类都是Object的子类,而toString()是Ojbect中的方法,看这段简单明了的代码:[code]class Demo{ // 定义Demo类,实际上就是继承了Object类
};
public class ObjectDemo01{
public static void main(String args[]){
Demo d = new Demo() ; // 实例化Demo对象
System.out.println("不加toString()输出:"+d) ;
System.out.println("加上toString()输出:"+d.toString()) ;
}
};[/code]从结果中你会发现加与不加toString()完成的功能都是一样的,就证明了对象在打印的时候一定会调用toString()方法,这是默认调用的。而你举的例子其实只是为了让你理解,在使用输出的时候都会默认调用toString()方法。
再看这段代码:[code]class Person{
private String name ; // 定义name属性
private int age ; // 定义age属性
public Person(String name,int age){
this.name = name ;
this.age = age ;
}
public String toString(){ //覆写Object 中的toString方法
return "姓名:" + this.name + ";年龄:" + this.age ;
}
};
public class ObjectDemo02{
public static void main(String args[]){
Person per = new Person("小李",30) ; // 实例化Person
System.out.println("对象信息:" + per) ;
}
};[/code]从这个结果可以发现,我们并没有调用toString()方法 ,但依然得到了输出结果,近尔也证明了,toString()方法是默认调用的,只是为产明这一点。 |