長い間戸惑っていた問題です
2037 ワード
次のコード:
Java初心者1枚、誰かが解答することを望みます:
私はデバッグして、歩く順序:親クラスの構造関数内のadd(1)メソッドを歩くとき、どうして親クラスのadd()メソッドを呼び出すのではなく、子クラスのadd()メソッドを呼び出すのですか?したがって、最初の出力は2です.
package com.lk.C;
public class Test5 {
public static void main(String[] args) {
go(new MyBase());
}
static void go(Base b){
b.add(8);
}
}
class Base{
int i;
Base(){
add(1);
System.out.println(i);
}
void add(int v){
i = i+v;
System.out.println(i);
}
void print(){
System.out.println(i);
}
}
class MyBase extends Base{
MyBase(){
add(2);
}
void add(int v){
i += v*2;
System.out.println(i);
}
}
2
2
6
22
Java初心者1枚、誰かが解答することを望みます:
私はデバッグして、歩く順序:親クラスの構造関数内のadd(1)メソッドを歩くとき、どうして親クラスのadd()メソッドを呼び出すのではなく、子クラスのadd()メソッドを呼び出すのですか?したがって、最初の出力は2です.