请问这段代码该怎么理解呢?

img

  • Base b1 = new Base()b1.method(5) 这个方法很明显就是调用 Base 类中的 method 方法,因此打印结果是 Value is 5
  • Base b2 = new Sub(),Sub 是 Base 的子类,因此 b2 实际指向了 Sub 类的实例,b2.method(6) 调用的是 Sub 类中参数类型为 int 的 method 方法,因此打印的结果是 This value is 6

正确答案为 C

b1.method(5)很简单
b2.method(6)
先在Sub类中找method()方法,找到了method(int j)
就执行Sub里面的method方法
如果没找到就回去父类里找

楼主看来对面向对象的类的继承,函数的覆盖,重载理解还不深啊。
这题考的就是类的继承,函数的重写问题。
子类执行重载函数优先级别:子类的函数->父类的函数
具体调用哪个函数取决于函数的参数类型,以及个数

img