方法覆盖和方法重载的异同
Overloading 重载
Overriding 重写,又称覆盖
方法覆盖和方法重载具有以下相同点:
都要求方法同名
都可以用于抽象方法和非抽象方法
方法覆盖和方法重载的不同点:
方法覆盖要求参数必须一致,而方法重载要求参数必须不一致
方法覆盖要求返回值类型必须一致,而方法重载不做限制
方法覆盖只用于子类覆盖父类的方法,方法重载用于同一个类的所有方法(包括从父类中继承的方法)
public class Base {
public void method() {...}
}
public class Sub extends Base {
//继承了父类的method()方法
public void method() {...}
//重载了从父类继承的method方法
public void method(int i) {...}
//方法可以被重载很多次
public void method(int i,String s) {...}
}
方法覆盖对方法的访问权限和抛出的异常有特殊要求,而方法重载没有限制
父类的一个方法只能被子类覆盖一次,而一个方法在所在的类中可以被重载很多次
来源:oschina
链接:https://my.oschina.net/u/1265921/blog/201485