之前一直很模糊,看了《thinking in java》之后终于明白了
假如现在有两个类A,B,B是A的派生类。
在A中有这样的方法:
public void say(int i){
.....
}
public void say(String str){
.....
}
在B类中有这样的方法:
public void say(double d){
.....
}
@Override
public void say(String str){
.....
}
现在我们的代码是这样的:
A a=new B();
a.say(“hello”);//调用的是B类的say方法
a.say(2.0);//error,无法通过编译
a.say(1);//调用的是A类的say方法
方法被覆盖,调用的是子类的方法。
如果是子类独有的方法,则只能调用父类的方法。