下列代码的运行结果是:( )
class SimpleCalc {
public int value;
public void calculate() {value += 7; }
}
public class MultiCalc extends SimpleCalc {
public void calculate() { value -= 3;}
public void calculate(int multiplier) {
calculate();
super.calculate();
value *= multiplier;
}
public static void main(String[] args) {
MultiCalc calculator = new MultiCalc();
calculator.calculate(2);
System.out.println("Value is: " + calculator.value);
}
}Value is: 8
Value is: -8
Value is: 12
Value is: -12
calculate(); 是调用 MultiCalc 的 calculate();
super.calculate(); 是调用 SimpleCalc 的 calculate();
value 都 指向 SimpleCalc.value
所以:
value = 0;
value = value - 3 + 7;
value = value * 2;
value = 8;
super.calculate(); 是调用 SimpleCalc 的 calculate();
value 都 指向 SimpleCalc.value
所以:
value = 0;
value = value - 3 + 7;
value = value * 2;
value = 8;