【问题标题】:Override toString() method java覆盖 toString() 方法 java
【发布时间】:2018-01-10 00:07:49
【问题描述】:

我在 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”?

【问题讨论】:

  • System.out.println(new Main()); 将输出lol
  • 这里没有 Main 类的实例。您没有调用该 toString 方法。你得到了 int 的那个
  • "为什么输出是 0 而不是 "lol"" 因为你打印的是整数,而不是你的班级。

标签: java methods overriding


【解决方案1】:

为什么输出是 0 而不是“lol”?

因为您打印的是整数而不是 Main class 的实例

您可以执行以下操作

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());

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-10
    • 2012-10-20
    • 1970-01-01
    相关资源
    最近更新 更多