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 相关文章推荐
在PHP3中实现SESSION的功能(一)
Oct 09 PHP
在任意字符集下正常显示网页的方法二(续)
Apr 01 PHP
MySQL GBK→UTF-8编码转换
May 24 PHP
php adodb操作mysql数据库
Mar 19 PHP
php小偷相关截取函数备忘
Nov 28 PHP
使用JSON实现数据的跨域传输的php代码
Dec 20 PHP
PHP实现恶意DDOS攻击避免带宽占用问题方法
May 27 PHP
php cookie 详解使用实例
Nov 03 PHP
利用PHP判断文件是否为图片的方法总结
Jan 06 PHP
对于Laravel 5.5核心架构的深入理解
Feb 22 PHP
php微信公众号开发之微信企业付款给个人
Oct 04 PHP
实例讲解php实现多线程
Jan 27 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-pcntl 实现多进程代码
2016/09/30 PHP
PHP中的浅复制与深复制的实例详解
2017/10/26 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
关于COOKIE个数与大小的问题
2011/01/17 Javascript
js自动闭合html标签(自动补全html标记)
2012/10/04 Javascript
javascript常用对话框小集
2013/09/13 Javascript
基于javascript实现的搜索时自动提示功能
2014/12/26 Javascript
jquery实现在光标位置插入内容的方法
2015/02/05 Javascript
js实现iGoogleDivDrag模块拖动层拖动特效的方法
2015/03/04 Javascript
JQuery实现的图文自动轮播效果插件
2015/06/19 Javascript
利用D3.js实现最简单的柱状图示例代码
2016/12/09 Javascript
VueJs与ReactJS和AngularJS的异同点
2016/12/12 Javascript
Scala解析Json字符串的实例详解
2017/10/11 Javascript
浅谈VUE监听窗口变化事件的问题
2018/02/24 Javascript
vue-cli3添加模式配置多环境变量的方法
2019/06/05 Javascript
解决layui 三级联动下拉框更新时回显的问题
2019/09/03 Javascript
微信小程序 点击切换样式scroll-view实现代码实例
2019/10/11 Javascript
[47:45]Liquid vs OG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python中tell()方法的使用详解
2015/05/24 Python
使用Python内置的模块与函数进行不同进制的数的转换
2016/03/12 Python
Python的Flask框架应用程序实现使用QQ账号登录的方法
2016/06/07 Python
Python编程之event对象的用法实例分析
2017/03/23 Python
Django添加KindEditor富文本编辑器的使用
2018/10/24 Python
Python定时任务工具之APScheduler使用方式
2019/07/24 Python
python分别打包出32位和64位应用程序
2020/02/18 Python
运动会邀请函范文
2014/01/31 职场文书
办公室秘书岗位职责范本
2014/02/11 职场文书
机电一体化求职信
2014/03/10 职场文书
私营公司诉讼代理委托书范本
2014/09/13 职场文书
国际残疾人日广播稿范文
2014/10/09 职场文书
《玩出了名堂》教学反思
2016/02/17 职场文书
小学语文教学反思范文
2016/03/03 职场文书
教师师德承诺书2016
2016/03/25 职场文书
个人道歉信大全
2019/04/11 职场文书
MySQL七种JOIN类型小结
2021/10/24 MySQL
win10电脑老是死机怎么办?win10系统老是死机的解决方法
2022/08/05 数码科技