Rak*_*esh 5 java oop inheritance
以下代码将输出打印为40而不是30.我无法找出解决方案.请帮助代码.
class Base {
int value = 0;
Base() {
addValue();
}
void addValue() {
value += 10;
}
int getValue() {
return value;
}
}
class Derived extends Base {
Derived() {
addValue();
}
void addValue() {
value += 20;
}
}
public class Test{
public static void main(String[] args) {
Base b = new Derived();
System.out.println(b.getValue());
}
}
Run Code Online (Sandbox Code Playgroud)
Derived构造函数中
的隐式超级引用调用Base构造函数,该构造函数又调用addValue()类中的方法将Base值变量作为10,然后addValue()在Derived类中将20添加到值10.因此最终输出为30.
但代码打印40.
| 归档时间: |
|
| 查看次数: |
100 次 |
| 最近记录: |