【软件构造】override与overload总结

系列文章目录


一、前言

在学习与编程的过程中经常会遇到这两个基本的概念:override与overload,这两个概念虽然很简单,但是经常会出现混淆。
所以在这里对这两个概念进行简单的总结。

二、override

override一般出现在子类继承之中,既包括接口的实现类,又包括实现类之间的继承关系。

其中对override有以下的要求与特点:
(1)子类中override方法的方法名、参数、返回值必须与父类相同。
(2)子类方法的规约不可以比父类方法的规约弱(前置条件,后置条件,抛出异常)。
(3)子类方法不能抛出比父类方法更多的异常,应该抛出相同的异常或者是异常子类(但子类方法可以不抛出异常)。
较为特殊的是:
(4)当方法被final修饰时,子类不能重写该方法 。
(5)当方法被private修饰时,只是在其子类中新定义了一个方法,并没有对其进行覆盖。


三、overload

overload为非参数多态(泛型化为参数多态),为同一方法提供了不同的处理方式不需要继承。

对overload有以下的要求与特点:
(1)参数类型、个数、顺序至少有一个不相同。
(2)不能重载只有返回值不同的方法名。
(3)不能通过访问权限、返回类型、抛出的异常进行重载;
(4)方法的异常类型和数目不会对重载造成影响。

override是发生在类层面,而overload发生在实例层面
override在不同类中,overload可以在同一类中

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
重写(Overriding)和重载(Overloading)是Java多态性的不同表现。重载发生在一个类中,方法名相同,但各自的参数不同,称为重载。重写发生在子类与父类之间,要求子类被重写方法与父类被重写方法有相同的参数列表,有兼容的返回类型,比父类被重写方法更好访问,不能比父类被重写方法声明更多的异常。重载对返回类型没有特殊的要求,不能根据返回类型进行区分。123 #### 引用[.reference_title] - *1* [Java 重写(Override)与重载(Overload)](https://blog.csdn.net/weixin_30847271/article/details/101852544)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] - *2* [【软件构造override和overload区别](https://blog.csdn.net/weixin_52966993/article/details/124827752)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] - *3* [重载(Overload)与重写(Override)的区别](https://blog.csdn.net/weixin_52754604/article/details/122968798)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值