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 相关文章推荐
javascript 小型动画组件与实现代码
Jun 02 PHP
解析PHP汉字转换拼音的类
Jun 18 PHP
深入file_get_contents与curl函数的详解
Jun 25 PHP
PHP中Session引起的脚本阻塞问题解决办法
Apr 08 PHP
跟我学Laravel之请求(Request)的生命周期
Oct 15 PHP
PHP 实现类似js中alert() 提示框
Mar 18 PHP
php操作redis缓存方法分享
Jun 03 PHP
php抓取并保存网站图片的实现代码
Oct 28 PHP
PHP YII框架开发小技巧之模型(models)中rules自定义验证规则
Nov 16 PHP
老生常谈PHP面向对象之解释器模式
May 17 PHP
利用PHPStorm如何开发Laravel应用详解
Aug 30 PHP
TP5(thinkPHP框架)实现后台清除缓存功能示例
May 29 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中的HashTable结构详解
2013/06/13 PHP
PHP变量赋值、代入给JavaScript中的变量
2015/06/29 PHP
php post json参数的传递和接收处理方法
2018/05/31 PHP
Jquery ThickBox插件使用心得(不建议使用)
2010/09/08 Javascript
mailto的使用技巧分享
2012/12/21 Javascript
jQuery获取Radio,CheckBox选择的Value值(示例代码)
2013/12/12 Javascript
javascript中数组的冒泡排序使用示例
2013/12/18 Javascript
ECMAScript 5中的属性描述符详解
2015/03/02 Javascript
JS特效实现图片自动播放并可控的效果
2015/07/31 Javascript
使用Node.js处理前端代码文件的编码问题
2016/02/16 Javascript
Bootstrap Chart组件使用教程
2016/04/28 Javascript
jQuery插件制作的实例教程
2016/05/16 Javascript
require.js配合插件text.js实现最简单的单页应用程序
2016/07/12 Javascript
JavaScript数据操作_浅谈原始值和引用值的操作本质
2016/08/23 Javascript
jQuery实现边框动态效果的实例代码
2016/09/23 Javascript
完全深入学习Bootstrap表单
2016/11/28 Javascript
javascript 实现文本使用省略号替代(超出固定高度的情况)
2017/02/21 Javascript
Nuxt.js开启SSR渲染的教程详解
2018/11/30 Javascript
JavaScript数据结构与算法之基本排序算法定义与效率比较【冒泡、选择、插入排序】
2019/02/21 Javascript
js实现跟随鼠标移动的小球
2019/08/26 Javascript
微信小程序 scroll-view 水平滚动实现过程解析
2019/10/12 Javascript
[38:51]2014 DOTA2国际邀请赛中国区预选赛 Orenda VS LGD-CDEC
2014/05/22 DOTA
Python聚类算法之凝聚层次聚类实例分析
2015/11/20 Python
Python实现的绘制三维双螺旋线图形功能示例
2018/06/23 Python
Python基于多线程操作数据库相关问题分析
2018/07/11 Python
python字符串Intern机制详解
2019/07/01 Python
超实用的 30 段 Python 案例
2019/10/10 Python
pygame实现俄罗斯方块游戏(基础篇1)
2019/10/29 Python
Window版下在Jupyter中编写TensorFlow的环境搭建
2020/04/10 Python
Python应用自动化部署工具Fabric原理及使用解析
2020/11/30 Python
关键字final的用法
2013/10/02 面试题
优秀共产党员事迹材料
2014/12/18 职场文书
清明扫墓感想
2015/08/11 职场文书
家庭教育教师培训学习体会
2016/01/14 职场文书
React-vscode使用jsx语法的问题及解决方法
2021/06/21 Javascript
JavaScript获取URL参数的方法分享
2022/04/07 Javascript