class A {
}
class B extends A {
String tmp = "tmp";
@Override
public String toString() {
return "hello";
}
}
public class C {
public static void main(String[] args) {
B b = new B();
System.out.println(b);
}
}
輸出結果是 hello。
如果将System.out.println(b); 改為System.out.println(b.tmp);結果為hello。
1、這裡面System.out.println(b)是列印b對象,是以調用b裡面定義的toString();
2、System.out.println(b.tmp) 是列印tmp,因為tmp是b類定義的一個成員變量,為String類型,是以會調用String裡面的toString()方法。
3、toString()是java中的一個内置方法,很多object都支援toString這個方法。而如果你在類裡編寫了toString(),相當于覆寫了類中原有的toString(),在System.out.print中會自動調用。