Overload&Override

overload—–重载

方法的重载就是在一个类中,可以定义多个有相同名字,但参数不同的方法。调用时,会根据不同的参数表选择对应的方法。

规    则:两同三不同
两    同:同一个类、同一方法名
三 不 同:参数类型、参数个数、参数排列顺序不同

注:参数名称不同、参数返回值不同无法构成方法的重载。如果只有方法参数名称不同或者方法返回值不同,在你调用方法时你输入的实参会在参数列表中对应多个方法,无法使编译器知道你到底调用的是哪个方法。

代码说明如下:

注释:java中允许任何方法重载,包括构造方法。因此,要完整的描述一个方法,需要指出方法名以及参数类型,这个叫做方法的签名(signature)。

Override-----重写

在子类中根据需要对从父类中继承来的方法进行修改,这叫做方法的重写,也称为方法的覆盖。重写方法只能存在于具有继承的关系中。

注意事项:

(1) 子类不能重写父类中被关键字final修饰的方法(包括private方法,因为private方法是隐式final的)。

(2)  重写方法必须与被重写方法具有相同的方法名称、参数列表和返回值类型。

(3) 重写方法不能使用比被重写方法更严格的访问权限(由于多态的存在)。重载可以。

(4) 重写方法不能抛出新的异常或者比被重写方法申明更加宽泛的检查性异常,可以抛出非检查型异常。如:父类的一个方法申明了一个检查异常IOException,在重写这个方法的时候,重写方法不能抛出Exception,只能抛出IOException或其子类异常,也可以抛出非检查型异常。重载可以抛出不同的异常。

方法的重载与方法的重写没关系!

Overload&Override的更多相关文章

  1. 大约 C++ 几个方面分析--overload, override, overwrite, rewrite

    overload, override, overwrite, rewrite 这几个单词常常出如今 C++ 书中,翻阅一些译版后发现并未对 override, overwrite, rewrite 严 ...

  2. overload, override和overwrite之间的区别

    Overload.Overwrite和Override的概念比较容易混淆,而且Overwrite和Override的中文翻译五花八门,让人很Confuse,顾保持英文原意: Overload  重载 ...

  3. c/c++:重载 覆盖 隐藏 overload override overwrite

    http://www.cnblogs.com/qlee/archive/2011/07/04/2097055.html 成员函数的重载.覆盖与隐藏成员函数的重载.覆盖(override)与隐藏很容易混 ...

  4. delphi override、overload、reintroduce的区别-0613.txt

    http://blog.csdn.net/honglixx/article/details/3624934 1.override overload reintroduce的中文叫法是什么? overr ...

  5. JAVA中继承时方法的重载(overload)与重写/覆写(override)

    JAVA继承时方法的重载(overload)与重写/覆写(override) 重载-Override 函数的方法参数个数或类型不一致,称为方法的重载. 从含义上说,只要求参数的个数或参数的类型不一致就 ...

  6. Java学习-Overload和Override的区别

    1.Overload是重载的意思,Override是覆盖的意思,也就是重写. 2.重载Overload表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同(即参数个数或类型不同). 3 ...

  7. 测者的测试技术手册:分清Java的Override和Overload

    Java的Override和OverloadOverride重写:子类对父类的允许访问的方法实现过程重新编写,但是 不可改变返回值和入参.重弄写的规则: 参数列表必须完全与被重写方法的相同: 返回类型 ...

  8. override overload reintroduce的区别(delphi)

    1.override overload reintroduce的中文叫法是什么?   override:覆盖:overload:重载:Reintroduce:重定义 2.在子类中override或ov ...

  9. Object Pascal 语言基础

    Delphi 是以Object Pascal 语言为基础的可视化开发工具,所以要学好Delphi,首先要掌握的就是Object Pascal 语言.Object Pascal语言是Pascal之父在1 ...

随机推荐

  1. angular4.0路由传递参数、获取参数最nice的写法

    研究ng4的官网,终于找到了我想要的方法.我想要的结果是用'&'拼接参数传送,这样阅读上是最好的.否则很多'/'的拼接,容易混淆参数和组件名称.一般我们页面跳转传递参数都是这样的格式:http ...

  2. python每日学习2018/1/11

    A.4 Python 关键字和内置函数 Python包含一系列关键字和内置函数,给变量命名时,知道这些关键字和内置函数很重要. 编程中面临的一个挑战是给变量指定合适的名称,变量名可以是任何东西,只要它 ...

  3. PyQt4 模拟记事本基本功能(保存,打开文件)

    完成功能: 1. 默认[保存]按钮enable 2. 修改文本的内容后,[enable] 3. 解决字符乱码问题:utf-8 4. 提示:如果修改了文件没有保存的时候,又尝试打开新的文件,给出相关的提 ...

  4. 【数论·错位排列】bzoj4517 排列计数

    4517: [Sdoi2016]排列计数 Time Limit: 60 Sec  Memory Limit: 128 MBSubmit: 1428  Solved: 872[Submit][Statu ...

  5. python 版本管理工具 pyenv 使用备忘

    安装步骤 安装 xcode-select 以及 homebrew(前者在安装 git 的时候装过,后者 mac 开发必备无需解释) 安装 pyenv brew install pyenv,用 pyen ...

  6. strace命令【转】

    strace命令使用: strace常用来跟踪进程执行时的系统调用和所接收的信号. 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用 ...

  7. 前端请求参数MD5加密校验,参数串解密

    首先引入MD5加密库:=>https://cdn.bootcss.com/blueimp-md5/2.10.0/js/md5.min.js; 步骤:=>1.请求前对参数进行字典升序排序,排 ...

  8. 开发 | 小程序wx.setScreenBrightness/wx.getScreenBrightness接口测试

    前言 最近接触了微信小程序 API - wx.setScreenBrightness .wx.getScreenBrightness 接口,调用该接口可以调节并显示手机屏幕亮度数据.对于喜欢腾讯新闻. ...

  9. python网络数据采集(伴奏曲)

    这里是前章,我们做一下预备.之前太多事情没能写博客~..             (此博客只适合python3x,python2x请自行更改代码) 首先你要有bs4模块 windows下安装:pip3 ...

  10. bzoj 2303: [Apio2011]方格染色

    传送门 Description Sam和他的妹妹Sara有一个包含n × m个方格的表格.她们想要将其的每个方格都染成红色或蓝色.出于个人喜好,他们想要表格中每个2 × 2的方形区域都包含奇数个(1 ...