请问一道题,是关于静态方法的,请看题目
1.class A
2.{
3. public static void a(){
4. System.out.println("super's a()");
5. }
6.};
7.public class Child extends A
8.{
9. public static void a(){
10. System.out.println("child's a()");
11. }
12. public static void main(String[]args){
13. A ch=new Child();
14. System.out.println(ch);
15. ch.a();
16. }
17.};
我在运行后得到结果为:Ch@12498b5
super's a()
请问,这是为什么???
我知道,第13句,编译时ch为父类A的引用,而运行时是子类Child的引用。所以执行到14句时输出了子类的对象;可为什么到15句时,ch.a()调用的时父类中的方法呢??不是ch在执行到14句时已经是子类的引用了吗???请高人指点!!!