【发布时间】:2016-11-25 00:44:45
【问题描述】:
考虑以下类层次结构:
class A {
compute(int a) {
compute(a, 1);
}
compute(int a, int b) {
// do some things
}
}
class B extends A {
compute(int a, int b) {
// do some stuff
}
}
如果我使用 A 引用初始化 B 对象,如下所示:
A foo = new B();
如果我打电话:
foo.compute(1)
那么,在这个方法调用里面,会调用A类的compute(int, int)还是调用B类的compute(int, int)?
官方 java 文档中的任何引用?
【问题讨论】:
-
嗯,它是
B.compute(int, int),因为它已经覆盖了A.compute(int, int)。但是你为什么不试试呢?