日期:2014-05-20 浏览次数:20698 次
public class TestString {
/**
* <pre>
* @author kanpiaoxue
* Date 2013-11-14
* 当前类没有重写Object的 public String toString()
* 这样,在打印该实例的引用的时候,会调用 Object 的 toString() 方法。
*
* 下面的这个 toString() 是JDK中Object类的方法。可以看见它的组成是由“类名 + hashCode”组成的。
* public String toString() {
* return getClass().getName() + "@" + Integer.toHexString(hashCode());
* }
* </pre>
*/
class WithoutToString {
protected String name;
protected int age;
public WithoutToString(String name, int age) {
super();
this.name = name;
this.age = age;
}
}
/**
* <pre>
* @author kanpiaoxue
* Date 2013-11-14
* 当前类重写了 Object的 public String toString()
* 在打印该实例的引用的时候,因为这里重写了 Object的 public String toString(),所以就调用当前类的 public String toString()方法。
* </pre>
*/
class WithToString extends WithoutToString {
public WithToString(String name, int age) {
super(name, age);
}
@Override
public String toString() {
return "WithToString [name=" + name + ", age=" + age + "]";
}
}
/**
* @param args
*/
public static void main(String[] args) {
TestString test = new TestString();
String name = "kanpiaoxue";
int age = 200;
WithoutToString a = test.new WithoutToString(name, age);
System.out.println(a);
WithToString b = test.new WithToString(name, age);
System.out.println(b);
// -------- output ------------
//com.wanmei.test.TestString$WithoutToString@2a9931f5
//WithToString [name=kanpiaoxue, age=200]
}
}