@(躍遷之路)專欄code
- 技術的精進不能只是簡單的刷題,而應該是不斷的「刻意」練習
- 該系列改版後正式歸入【躍遷之路】專欄,持續更新
package Wangyi; class Base { public void method() { System.out.println("Base"); } } class Son extends Base { public void method() { System.out.println("Son"); } public void methodB() { System.out.println("SonB"); } } public class Test01 { public static void main(String[] args) { Base base = new Son(); base.method(); base.methodB(); } }
問這個程序的輸出結果。對象
正確答案: D 你的答案: B (錯誤)
A Base SonB
B Son SonB
C Base Son SonB
D 編譯不經過編譯
Base base=new Son(); 是多態的表示形式。父類對象調用了子類建立了Son對象。 base調用的method()方法就是調用了子類重寫的method()方法。 而此時base仍是屬於Base對象,base調用methodB()時Base對象裏沒有這個方法,因此編譯不經過。 要想調用的話須要先經過SON son=(SON)base;強制轉換,而後用son.methodB()調用就能夠了。