重载和重写的区别

重载

  • 在同一个类里面。方法名相同,参数列表有不同,返回值和修饰符不影响,实现过程不同。
  • 重载是为了让调用方法时,选择更条理。
  • 修饰符不影响重载: 重载方法修饰符可以不一样,但是这意味着其它地方对这些方法的访问权限会不一样。例如:下面的类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();
	}
}

重写

  • 前提是有继承关系,子类对父类的方法重写。访问修饰符只能扩大不能缩小,方法体不同,其他都相同。
  • 通常不建议对父类方法重写,更好的办法是扩展别的方法。
  • 接口和抽象类的抽象方法必须重写。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值