2017-08-02 17 views
-5

私は、javaオーバーライドのtoString()メソッドのJava

public class Main { 

    @Override 
    public String toString(){ 
     return "lol"; 
    } 

    public static void main(String[] args) { 
     int aaa=0; 
     System.out.println(aaa); 
    } 
} 

に私のメインクラスでこれを持っている私は、暗黙的には呼ばれているのtoString()メソッドをオーバーライドしたいです。 なぜ出力が "lol"でないのですか?

+3

'System.out.println(new Main());'は 'lol'を出力します。 – nickb

+2

Mainクラスのインスタンスはありません。あなたはそのtoStringメソッドを呼び出さなかった。 – duffymo

+3

"_why出力は0ではありません" lol "_"あなたはクラスではなく整数を出力します。 – csmckelvey

答えて

1

なぜ "lol"でないのですか?

あなたはあなたが同じ

System.out.println(myMain); 

を行うことができ、次の

public class Main { 

    @Override 
    public String toString(){ 
     return "lol"; 
    } 

    public static void main(String[] args) { 
     // int aaa=0; 
     Main myMain = new Main(); 
     System.out.println(myMain); 
    } 
} 

ノートを行うことができ、整数ではなくそのMain class

のインスタンスを印刷しているので、

System.out.println(myMain.toString()); 
関連する問題