【发布时间】:2013-02-21 18:32:59
【问题描述】:
假设我有一个带有 toString() 的父类,它返回“父级”。然后,我在子类中重写此方法,使其返回“child”。如果我把孩子放在一个父母的数组中,然后调用 toString() 而不进行任何转换,会调用哪个方法?
请尽快回复, 提前致谢!
【问题讨论】:
-
请自行检查。
-
提示:
toString是一种“虚拟”方法。如果一个方法是“虚拟的”,这意味着什么(在 Java 中)? -
继承 101:在指针数组中(Java 中的每个对象都是指针),如果可用,它将始终调用最具体的方法。这是类的最基本用法。
-
@RefugnicEternium 通常。除非该方法不是虚拟的。 (默认情况下,C# 方法不是虚拟的。)
-
@user2141449 ,顺便说一句,你的问题只有一个答案,你应该接受这个答案。
标签: java arrays inheritance casting