重载
- 在同一个类里面。方法名相同,参数列表有不同,返回值和修饰符不影响,实现过程不同。
- 重载是为了让调用方法时,选择更条理。
- 修饰符不影响重载: 重载方法修饰符可以不一样,但是这意味着其它地方对这些方法的访问权限会不一样。例如:下面的类Parent,外部只能public修饰的educate方法。
public class Parent{
private void educate(); //方法体略
public void educate();
- 返回值不影响重载: 重载可以选择不同的返回值。不过,返回值作为一个方法的“出口”和“结果”,不能凭借返回值区别不同的方法。 移驾下面代码,你知道Girl调用的是Boy的哪个run方法吗?
publc class Boy{
public void run(); //方法体略
public int run();
}
public class Girl{
public void fight(){
new Boy().run();
}
}
重写
- 前提是有继承关系,子类对父类的方法重写。访问修饰符只能扩大不能缩小,方法体不同,其他都相同。
- 通常不建议对父类方法重写,更好的办法是扩展别的方法。
- 接口和抽象类的抽象方法必须重写。