重写java中的toString()方法

重写java中的toString()方法,java,methods,overriding,Java,Methods,Overriding,我在java的主类中有这个 public class Main { @Override public String toString(){ return "lol"; } public static void main(String[] args) { int aaa=0; System.out.println(aaa); } } 我想重写隐式调用的toString方法。 为什么输出为0不是lol

我在java的主类中有这个

public class Main   {

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

    public static void main(String[] args) {
        int aaa=0;
        System.out.println(aaa);
    }
}
我想重写隐式调用的toString方法。 为什么输出为0不是lol

为什么输出为0不是lol

因为您正在打印一个整数,而不是该主类的实例

您可以执行以下操作

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);
    }
}
请注意,您可以这样做

System.out.println(myMain);

System.out.println(myMain.toString());

System.out.PRINTLN新干管;将输出lol。这里没有主类的实例。你没有把它叫做toString方法。你得到了intwhy输出为0而不是lol的结果,因为你打印了一个整数,而不是你的类。