【发布时间】:2013-11-23 02:29:33
【问题描述】:
我不明白为什么这在 java 中有效:
如果我在一个对象中有一个 Integer 对象,例如:
Object myIntObj = new Integer(5);
现在如果我这样做:
System.out.println(myIntObj);
输出为:5
我现在 Integer 类有一个 toString 方法的 ovveride,但在这种情况下是不同的(我认为)。 对于多态性,如果我在“父变量”中有一个“子对象”,则该对象不会改变其真实类型(在本例中为整数)但是......它(在 Object 变量中)可以只使用对象类,那我为什么要写:
System.out.println(myIntObj);
我可以直接看到数字 5 而不是这个对象的引用?因为对象类中的toString方法默认返回的只是对象引用的字符串。
喜欢:
Object currentPlayer = new Player();
System.out.println(currentPlayer);
在这种情况下,输出是 Player 对象的引用,因为在对象类中调用了 toString 方法。
那么为什么在之前的示例中我没有看到参考,而是直接看到数字? 从逻辑上讲,多态性的规则说:如果你在“父亲”变量中有一个“孩子”对象,这个对象,在里面,remanis 相同,但他被用作对象的一个实例,所以他可以只使用类对象,所以只是对象的方法,所以很奇怪,我没有看到引用而是直接看到数字。
希望你明白我的意思。
【问题讨论】:
-
是否为
Player类定义了toString()? -
只是一个评论。将对象输出到控制台时看到的字符不是引用本身,而是哈希码。
标签: java object tostring object-to-string