对于标准的多态示例程序
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方法。大家注意的是,尽量不要在子类中声明和父类私有方法相同名称的方法。