日期:2014-05-20  浏览次数:20780 次

超类调用方法求解
Java code

class A{
A(int a){
me();
//...
}
//...
public void me(){//...}
}

class B extends A{
B(int a){
super(a);
}
public void me(){//...}
}


如果实例化B
B b=new B(10);
这时为什么调用的会是B中的me方法?求解

------解决方案--------------------
因为重写了
------解决方案--------------------
探讨

是不是就是说:
子类有覆盖父类的函数就会调用子类的
如果没有覆盖就还是会调用父类的

------解决方案--------------------
可以理解为就近原则 先看自己有没有 没有了再去找老子的
------解决方案--------------------
子类重写父类方法,子类对象调用的就是子类重写的方法了。
看基础书,上面都有讲。
------解决方案--------------------
重写,并且函数没重载