重写与重载的区别:------------常见面试题(答的时候只答1.1和2.1即可)
1)重写(override/overriding):
- 发生在父子类中,方法名相同,参数列表相同,方法体不同
- 遵循"运行期绑定",看对象类型来调用方法
2)重载(overload/overloading):
- 发生在同一类中,方法名相同,参数列表不同,方法体不同
- 遵循"编译期绑定",看参数/引用类型来绑定调用方法
//重写与重载的区别演示
public class OverloadOverrideDemo {
public static void main(String[] args) {
Eoo eoo = new Eoo();
Father o = new Son();
eoo.show(o); //重载时,看参数/引用类型来绑定方法
}
}
class Eoo{
void show(Father o) {
System.out.println("超类型参数");
}
void show(Son o) {
System.out.println("派生类型参数");
}
}
class Father{ //超类
}
class Son extends Father{ //派生类
}