Overload&Override
2024-08-23 02:07:34
Overload&Override
overload—–重载
方法的重载就是在一个类中,可以定义多个有相同名字,但参数不同的方法。调用时,会根据不同的参数表选择对应的方法。
规 则:两同三不同
两 同:同一个类、同一方法名
三 不 同:参数类型、参数个数、参数排列顺序不同
注:参数名称不同、参数返回值不同无法构成方法的重载。如果只有方法参数名称不同或者方法返回值不同,在你调用方法时你输入的实参会在参数列表中对应多个方法,无法使编译器知道你到底调用的是哪个方法。
代码说明如下:
注释:java中允许任何方法重载,包括构造方法。因此,要完整的描述一个方法,需要指出方法名以及参数类型,这个叫做方法的签名(signature)。
Override-----重写
在子类中根据需要对从父类中继承来的方法进行修改,这叫做方法的重写,也称为方法的覆盖。重写方法只能存在于具有继承的关系中。
注意事项:
(1) 子类不能重写父类中被关键字final修饰的方法(包括private方法,因为private方法是隐式final的)。
(2) 重写方法必须与被重写方法具有相同的方法名称、参数列表和返回值类型。
(3) 重写方法不能使用比被重写方法更严格的访问权限(由于多态的存在)。重载可以。
(4) 重写方法不能抛出新的异常或者比被重写方法申明更加宽泛的检查性异常,可以抛出非检查型异常。如:父类的一个方法申明了一个检查异常IOException,在重写这个方法的时候,重写方法不能抛出Exception,只能抛出IOException或其子类异常,也可以抛出非检查型异常。重载可以抛出不同的异常。
方法的重载与方法的重写没关系!
最新文章
- CSS样式重置(转)
- .Net语言 APP开发平台——Smobiler学习日志:快速实现应用中的图片、声音等文件上传功能
- 一看就懂得移动端rem布局、rem如何换算
- Solr集群常用的操作总结
- M2: XAML Controls(2)
- UVALive 6093 Emergency Room --优先队列实现的模拟
- [MySQL]安装和启动
- (转)redis 学习笔记(1)-编译、启动、停止
- userscript.user.js 文件头
- mybatis 应用参考
- Java基础知识强化51:经典排序之桶排序(BucketSort)
- 初学node.js有感二
- Qt 打开文件的默认路径 QFileDialog::getOpenFileName()
- Linux 系统裁剪笔记 4 (内核配置选项及删改)
- JavaScrip对象
- Lua require 相对路径
- C# C/S程序出错:ContextSwitchDeadlock is detected
- keil5配置ST Link v2 for STM32F10x
- FormatSQL
- HTML5页面开发的基础性模板
热门文章
- input 光标在 chrome下不兼容 解决方案
- cobbler安装配置.基本全了多看help和docs
- zookeeper leader选举算法源码
- Android技术之-------电脑获取手机截图
- [PHP] 编译构建最新版PHP源码
- Django---->;视图(View)
- bzoj 3874: [Ahoi2014]宅男计划
- [bzoj1811] [Ioi2005]mea
- linux下vi编辑某文件时,操作出现 错误提示: E325: ATTENTION 2, Found a swap file by the name ";.p1.c.swp";
- volatile 与 synchronized 区别