我知道在Java中,尤其是当你做实地隐藏,你可以访问祖父母的状态变量:的Java:访问祖父母的状态
((Grandparent) this).hiddenField
为什么同样的理由不是方法调用的情况下?你可以调用super.method(),为什么不是其他祖先的呢?
我知道在Java中,尤其是当你做实地隐藏,你可以访问祖父母的状态变量:的Java:访问祖父母的状态
((Grandparent) this).hiddenField
为什么同样的理由不是方法调用的情况下?你可以调用super.method(),为什么不是其他祖先的呢?
实例方法没有字段隐藏的类比。实例方法与实例字段或静态方法不同,它们可以动态调度,这是一个完全不同的故事。从某种意义上讲,重写的方法不再是“那里”,唯一的例外是在重写的方法体内,并且只有方法被直接覆盖。
因为方法是虚拟的,而字段不是。 目标是调用相同的方法,无论参考的类型如何:
(Grandparent) this).method()
总是等于。
呃...你有没有试过这个.Grandparent.method()? – j13r 2012-04-14 15:10:41
祖父母是一个类名,它不是一个实例字段... – Bober02 2012-04-14 15:20:12
我认为你正在寻找http://stackoverflow.com/questions/586363/why-is-super-super-method-not-allowed-in -java – j13r 2012-04-14 15:33:11