Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果类没有提供方法的实现,为什么类对象可以调用toString方法?_Java_Tostring - Fatal编程技术网

Java 如果类没有提供方法的实现,为什么类对象可以调用toString方法?

Java 如果类没有提供方法的实现,为什么类对象可以调用toString方法?,java,tostring,Java,Tostring,有人能解释为什么任何类对象都可以调用toString方法,即使该类没有为该方法提供实现 在这种情况下会发生什么?当一个类确实提供了toString方法实现时会发生什么?java中的每个类都是从对象类扩展而来的,它是一个单根层次结构,对象类有一个定义的toString方法,所以当您尝试用类对象调用它时,它会工作 因为toString方法从对象类继承到您的类 此外,您可以在任何类中重写toString方法,它的返回类型是String,因此在重写该方法之后,如果您使用类的对象调用toString,那么

有人能解释为什么任何类对象都可以调用toString方法,即使该类没有为该方法提供实现


在这种情况下会发生什么?当一个类确实提供了toString方法实现时会发生什么?

java中的每个类都是从对象类扩展而来的,它是一个单根层次结构,对象类有一个定义的toString方法,所以当您尝试用类对象调用它时,它会工作

因为toString方法从对象类继承到您的类


此外,您可以在任何类中重写toString方法,它的返回类型是String,因此在重写该方法之后,如果您使用类的对象调用toString,那么它将执行您在该类中编写的toString方法,而不是默认情况下提供的一个对象类,对象类有一个已定义的toString方法,因此当您尝试用类对象调用它时,它会工作

因为toString方法从对象类继承到您的类


此外,您可以在任何类中重写toString方法,它的返回类型为String,因此重写该方法后,如果您使用类的对象调用toString,则它将执行您在该类中编写的toString方法,而不是默认情况下提供的一个对象类,由于每个类都扩展了
对象
,因此调用toString调用
对象
实现,除非该类提供自己的实现。默认方法返回一个字符串,其中包含有关该类的一些信息。覆盖它允许您返回任何您想要的内容


请参见此处:

基本上,由于每个类都扩展了
对象
,因此调用toString调用
对象
实现,除非该类提供自己的实现。默认方法返回一个字符串,其中包含有关该类的一些信息。覆盖它允许您返回任何您想要的内容


请参见此处:

每个Java类都是类的子类


因此,通过继承,对象
类中可用的所有操作在每个Java类中都可用。这包括toString()操作:)。

每个Java类都是类的子类


因此,通过继承,对象
类中可用的所有操作在每个Java类中都可用。这包括toString()操作:)。

因为每个类都隐式扩展对象,而toString是在对象类中实现的。这一切都是关于子类化和多态性的魔力“类对象是类层次结构的根。每个类都有对象作为超类。所有对象,包括数组,都实现这个类的方法。”因为每个类都隐式扩展对象,而toString是在对象类中实现的。这一切都是关于子类化和多态性的魔力类对象是类层次结构的根。每个类都有对象作为超类。所有对象,包括数组,都实现这个类的方法