我正在阅读一些代码,我看到了这个:
abstract class Accum {
/** Return the accumulated result. */
abstract int result();
/** Process and accumulate the value X. */
abstract void accum(int x);
/** Return the result of accumulating all of the values in vals. */
int reduce(int[] vals) {
for (int x : vals)
accum (x);
return result ();
}
}
为什么reduce可以调用accum而不用“this”引用手头的对象?这个函数调用的简写版本不是只适用于静态方法吗?如果这可行,如果静态和非静态方法都具有相同的名称,它不会爆炸吗?