PHP中overload与override的区别


Posted in PHP onFebruary 13, 2017

override(重写,覆盖)

1、方法名、参数、返回值相同。

2、子类方法不能缩小父类方法的访问权限。

3、子类方法不能抛出比父类方法更多的异常(但子类方法可以不抛出异常)。

4、存在于父类和子类之间。

5、方法被定义为final不能被重写。

overload(重载,过载)

1、参数类型、个数、顺序至少有一个不相同。

2、不能重载只有返回值不同的方法名。

3、存在于父类和子类、同类中。

方法的重写(Overriding)和重载(Overloading)是Java多态性的不同表现。

重写(Overriding)是父类与子类之间多态性的一种表现,而重载(Overloading)是一个类中多态性的一种表现。

如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被"屏蔽"了.

如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型或有不同的参数次序,则称为方法的重载(Overloading)。不能通过访问权限、返回类型、抛出的异常进行重载.

1. Override 特点

1、覆盖的方法的标志必须要和被覆盖的方法的标志完全匹配,才能达到覆盖的效果;

2、覆盖的方法的返回值必须和被覆盖的方法的返回一致;

3、覆盖的方法所抛出的异常必须和被覆盖方法的所抛出的异常一致,或者是其子类;

4、被覆盖的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行覆盖。

2.Overload 特点

1、在使用重载时只能通过不同的参数样式。例如,不同的参数类型,不同的参数个数,不同的参数顺序(当然,同一方法内的几个参数类型必须不一样,例如可以是fun(int, float), 但是不能为fun(int, int));

2、不能通过访问权限、返回类型、抛出的异常进行重载;

3、方法的异常类型和数目不会对重载造成影响;

4、对于继承来说,如果某一方法在父类中是访问权限是priavte,那么就不能在子类对其进行重载,如果定义的话,也只是定义了一个新方法,而不会达到重载的效果。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

PHP 相关文章推荐
php 模拟POST|GET操作实现代码
Jul 20 PHP
PHP 图片文件上传实现代码
Dec 29 PHP
PHP 时间日期操作实战
Aug 26 PHP
wamp下修改mysql访问密码的解决方法
May 07 PHP
php无限分类且支持输出树状图的详细介绍
Jun 19 PHP
简单的php缓存类分享     php缓存机制
Jan 22 PHP
ecshop实现smtp发送邮件
Feb 03 PHP
thinkPHP框架自动填充原理与用法分析
Apr 03 PHP
PHP如何搭建百度Ueditor富文本编辑器
Sep 21 PHP
Thinkphp5.0框架使用模型Model的获取器、修改器、软删除数据操作示例
Oct 11 PHP
PHP简单实现图片格式转换(jpg转png,gif转png等)
Oct 30 PHP
PHP中通过getopt解析GNU C风格命令行选项
Nov 18 PHP
PHP处理Ajax请求与Ajax跨域问题
Feb 13 #PHP
curl 出现错误的调试方法(必看)
Feb 13 #PHP
PHP中CheckBox多选框上传失败的代码写法
Feb 13 #PHP
Yii2实现跨mysql数据库关联查询排序功能代码
Feb 10 #PHP
yii2 数据库读写分离配置示例
Feb 10 #PHP
php 基础函数
Feb 10 #PHP
PHP isset()与empty()的使用区别详解
Feb 10 #PHP
You might like
基于php实现七牛抓取远程图片
2015/12/01 PHP
laravel框架创建授权策略实例分析
2019/11/22 PHP
5款Javascript颜色选择器
2009/10/25 Javascript
javascript开发技术大全 第4章 直接量与字符集
2011/07/03 Javascript
js捕获鼠标右键菜单中的粘帖事件实现代码
2013/04/01 Javascript
jquery ajax修改全局变量示例代码
2013/11/08 Javascript
js实现简单的左右两边固定广告效果实例
2015/04/10 Javascript
jquery任意位置浮动固定层插件用法实例
2015/05/29 Javascript
JS基于clipBoard.js插件实现剪切、复制、粘贴
2016/05/03 Javascript
Ionic如何实现下拉刷新与上拉加载功能
2016/06/03 Javascript
Node.js制作简单聊天室
2017/01/12 Javascript
Vue.js展示AJAX数据简单示例讲解
2017/03/29 Javascript
React-Native中props具体使用详解
2017/09/04 Javascript
layui type2 通过url给iframe子页面传值的例子
2019/09/06 Javascript
element的el-table中记录滚动条位置的示例代码
2019/11/06 Javascript
vue获取data数据改变前后的值方法
2019/11/07 Javascript
vue-element-admin 菜单标签失效的解决方式
2019/11/12 Javascript
Electron+vue从零开始打造一个本地播放器的方法示例
2020/10/27 Javascript
浅谈vant组件Picker 选择器选单选问题
2020/11/04 Javascript
[01:08:24]DOTA2-DPC中国联赛 正赛 RNG vs Phoenix BO3 第一场 2月5日
2021/03/11 DOTA
Python数据结构之顺序表的实现代码示例
2017/11/15 Python
Python实现的拟合二元一次函数功能示例【基于scipy模块】
2018/05/15 Python
详解django.contirb.auth-认证
2018/07/16 Python
python进行文件对比的方法
2018/12/24 Python
Django+JS 实现点击头像即可更改头像的方法示例
2018/12/26 Python
Python shelve模块实现解析
2019/08/28 Python
Python argparse模块应用实例解析
2019/11/15 Python
使用pyqt 实现重复打开多个相同界面
2019/12/13 Python
python如何把字符串类型list转换成list
2020/02/18 Python
GitHub上值得推荐的8个python 项目
2020/10/30 Python
耐克巴西官方网站:Nike巴西
2016/08/14 全球购物
关键字throw与throws的用法差异
2016/11/22 面试题
总经理驾驶员岗位职责
2013/12/04 职场文书
关于童年的读书笔记
2015/06/26 职场文书
什么是求职信?求职信应包含哪些内容?
2019/08/14 职场文书
css样式important规则的正确使用方式
2022/06/10 HTML / CSS