有人可以解释为什么任何类对象都可以调用toString方法,即使该类没有为该方法提供实现。
在这种情况下会发生什么以及当类确实提供toString方法实现时会发生什么?
答案 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()