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

时间:2014-11-29 19:57:01

标签: java tostring

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

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

3 个答案:

答案 0 :(得分:4)

每个 Java类都是Object类的子类。

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

答案 1 :(得分:3)

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

因为toString方法从Object类继承到类

<_> Morevoer,你可以覆盖任何类中的toString方法,它的返回类型是String,所以在重写方法之后,如果你用类的对象调用toString,那么它将执行你在该类中编写的toString方法你的,而不是默认的一个Object类供应

答案 2 :(得分:1)

基本上,因为每个类都扩展Object,所以调用toString会调用Object实现,除非类提供它自己的实现。 default方法返回一个String,其中包含有关该类的一些信息。覆盖它可以让你返回任何你想要的东西。

见这里:https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#toString()