Java中方法覆盖和方法重载

Java中方法覆盖和方法重载

方法覆盖也称方法重写,重写即子类重新定义了父类的方法

  1. 重写的方法必须与原方法有相同的方法名参数列表返回值类型(Java SE5之后返回值类型可以是其类型的子类型)。
  2. 被重写的方法不能是final类型,因为final类型无法重写。
  3. 被重写的方法不能是private,因为private无法继承,继承是重写的前提。
  4. 被重写的方法不能为static。
  5. 重写的方法的访问权限不能小于原方法。
  6. 重写抛出的异常的范围不能大于原方法。
  7. 重写是在运行时发生的,JVM会在代码运行时作出决定。

方法重载,重载即同一个类中两个或多个方法名相同但参数不同的情况

  1. 方法名必须相同。
  2. 参数列表必须不同(参数的个数,类型,顺序不同)。
  3. 方法的返回值类型可以相同也可以不相同。
  4. 仅仅返回值类型不同不足以称为方法的重载。
  5. 重载时发生在编译时的,因为编译器可以根据参数类型来选择使用哪个方法。

重载和重写的区别

  1. 重写只能用于子类重写父类的方法,而重载用于同一类中的所有方法。
  2. 重写的参数列表必须相同,重载的参数列表必须不同。
  3. 重写要求返回值类型必须一致或是其子类,重载没有要求。
  4. 重写对方法的访问权限和抛出异常有特殊的要求,而方法的重载是没有这方面的限制。
  5. 父类的方法只能被同一子类重载一次,而一个方法可以在所有类中被重载很多次。
  6. 重写是运行时的多态,重载时编译时的多态。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值