请大家看看这道Java题,帮忙解释一下为什么?

来源:百度知道 编辑:UC知道 时间:2024/09/24 08:34:58
class TV {
public String toString(){
return "创维等离子电视!";
}
}

public class Student1 {

public static void main(String[] args) {
TV tv=new TV();
System.out.println(tv);

}
}

输出:创维等离子电视!
toString是一个什么样的方法?尽量详细一些。谢谢。tv明明是一个TV对象,输出的时候怎么就变成方法里面的返回内容了呢?

可以不管toString()是一个什么方法

首先 public String toString() 可以看出返回的是一个字符串

接着以 TV 类创建一个了 tv 对象

如果 tv 调用 toString() 方法则 return 字符串 创维等...

但是这里没有调用toString() 为什么还是输出了字符串?

因为 toString() 是所有 对象 的一个自带的方法

你这里重写了 toString() 方法,此方法的功能依然存在

功能如楼上所说:

System.out.println(tv);

当接收的是一个对象, 如果该引用存在,则调用obj.toString()进行打印

所以成功输出打印结果

public String toString()方法是Object类里的一个实例方法,作用是返回对象的相关信息.比如当你打印一个对象时,它会返回对象所属的类名@十六进制数

你的程序重写了public String toString()方法,自然在打印对象时旧会调用你重写的public String toString()方法,返回:创维等离子电视!

System.out.println(tv); 如果接收的是一个对象, 如果该引用不为null,则调用obj.toString()进行打印,如果为null,则输出'null'

因为你这个类把toString方法重写了,按正理,当你输入的时候,里面是一个类的话,java会自动调动这个类的tostring方法的,但是你重写了,return直接一个字符串,当然就是返回这个了。因为任何类都是object的子类。