對于標準的多態示例程序
Class A {
public void test(){
System.out.println("A");
}
}
Public Class B
extends A{//@override 有無都不會報錯
public void test(){
System.out.println("B");
}
public static void main(String[] arguments){
A a=new B();
a.test();
}
}
/*output:
B
*///:~
這個程序很好的示意了向上轉型后A對B實例的test的調用。
然而并不是所有的類型的方法都能夠支持多態。
對于是private的方法,我們應該格外注意。
這個結論是,a.test()調用的是A類的方法test。因為B中的test方法并不是覆蓋了A類的方法。因此,A調用的只是他自身的test方法。大家注意的是,盡量不要在子類中聲明和父類私有方法相同名稱的方法。