public class Demo {
public static void main(String[] args) {
// TODO Auto-generated method stub
Zi z=new Zi();
}
}
class Fu{
int num = 30;
Fu(){
show();
}
public void show(){
System.out.println(num);
}
}
class Zi extends Fu{
int num = 20;
public void show(){
System.out.println(num);
}
}
請大神詳細解釋一下為什麼會輸出0,真的很想知道,請盡量詳細,謝謝了。
你先看,你輸出數字這個函數是在構造函數裡面調用的,而在構造一個對象時首先調用的是構造函數,而此時的num還沒賦值!(所以繼承應該不是錯誤所在,盡管你直接構造一個Fu對象時,它輸出的應該還是0)