天天看點

Java 中 toString 方法的自動調用

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中會自動調用。