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 相关文章推荐
图书管理程序(三)
Oct 09 PHP
PHP字符串处理的10个简单方法
Jun 30 PHP
PHP游戏编程25个脚本代码
Feb 08 PHP
php 定义404页面的实现代码
Nov 19 PHP
php笔记之:数据类型与常量的使用分析
May 14 PHP
PHP 验证码不显示只有一个小红叉的解决方法
Sep 30 PHP
php 表单提交大量数据发生丢失的解决方法
Mar 03 PHP
分享自定义的几个PHP功能函数
Apr 15 PHP
WordPress中获取页面链接和标题的相关PHP函数用法解析
Dec 17 PHP
PHP实现的猴王算法(猴子选大王)示例
Apr 30 PHP
关于ThinkPHP中的异常处理详解
May 11 PHP
PHP测试框架PHPUnit组织测试操作示例
May 28 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
ajax在joomla中的原生态应用代码
2012/07/19 PHP
利用phpexcel把excel导入数据库和数据库导出excel实现
2014/01/09 PHP
php CI框架插入一条或多条sql记录示例
2014/07/29 PHP
PHP基于自增数据如何生成不重复的随机数示例
2017/05/19 PHP
YII2框架中查询生成器Query()的使用方法示例
2020/03/18 PHP
对jQuery的事件绑定的一些思考(补充)
2013/04/20 Javascript
JS图像无缝滚动脚本非常好用
2014/02/10 Javascript
JQuery 给元素绑定click事件多次执行的解决方法
2014/09/09 Javascript
Js使用WScript.Shell对象执行.bat文件和cmd命令
2014/12/18 Javascript
jQuery动态背景图片效果实现方法
2015/07/03 Javascript
javascript简单实现滑动菜单效果的方法
2015/07/27 Javascript
javascript实现对表格元素进行排序操作
2015/11/18 Javascript
JavaScript里 ==与===区别详解
2016/08/16 Javascript
jQuery使用DataTable实现删除数据后重新加载功能
2017/02/27 Javascript
Axios学习笔记之使用方法教程
2017/07/21 Javascript
vue router demo详解
2017/10/13 Javascript
Angular中支持SCSS的方法
2017/11/18 Javascript
vue.extend实现alert模态框弹窗组件
2018/04/28 Javascript
javascript获取元素的计算样式
2019/05/24 Javascript
JS window对象简单操作完整示例
2020/01/14 Javascript
ant design vue中日期选择框混合时间选择器的用法说明
2020/10/27 Javascript
[00:18]天涯墨客三技能展示
2018/08/25 DOTA
python列表操作实例
2015/01/14 Python
Python实现Youku视频批量下载功能
2017/03/14 Python
python实现堆和索引堆的代码示例
2018/03/19 Python
Python 20行简单实现有道在线翻译的详解
2019/05/15 Python
linux环境中没有网络怎么下载python
2019/07/07 Python
萨克斯第五大道的折扣店:Saks Fifth Avenue OFF 5TH
2016/08/25 全球购物
聪明的粉丝购买门票的地方:TickPick
2018/03/09 全球购物
意大利拉斐尔时尚购物网:Raffaello Network(支持中文)
2018/11/09 全球购物
管理信息系学生的自我评价
2014/01/11 职场文书
新学期校长寄语
2014/01/18 职场文书
初中美术教学反思
2014/01/29 职场文书
旅游市场营销方案
2014/03/09 职场文书
大学生村官座谈会发言材料
2014/05/25 职场文书
MySQL安装后默认自带数据库的作用详解
2021/04/27 MySQL