我執行了下面的程序,我很好奇我得到的輸出是哪個函數輸出先打印出來的,即使它是我首先打印的變量。爲什麼Overrided函數首先被調用?
class Baap{
public int h = 4;
public int getH(){
System.out.println("Baap "+h); return h;
}
}
public class Beta extends Baap{
public int h = 44;
public int getH(){
System.out.println("Beta "+h); return h;
}
public static void main(String args[]){
Baap b = new Beta();
System.out.println(b.h+" "+b.getH());
Beta bb = (Beta)b;
System.out.println(bb.h+" "+bb.getH());
}
}
輸出結果如下
Beta 44
4 44
Beta 44
44 44
有人可以幫我明白爲什麼功能塊最先被執行?
@Nambari,那不是他所指的。 – Dave