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执行速度全攻略
Oct 09 PHP
php的计数器程序
Oct 09 PHP
PHP中去除换行解决办法小结(PHP_EOL)
Nov 27 PHP
解析thinkphp中的导入文件标签
Jun 20 PHP
PHP实现利用MySQL保存session的方法
Aug 23 PHP
基于PHP+jQuery+MySql实现红蓝(顶踩)投票代码
Aug 25 PHP
PHP中PDO连接数据库中各种DNS设置方法小结
May 13 PHP
php版微信js-sdk支付接口类用法示例
Oct 12 PHP
PHP结合Ueditor并修改图片上传路径
Oct 16 PHP
PHP实现数据库的增删查改功能及完整代码
Apr 18 PHP
Laravel 登录后清空COOKIE的操作方法
Oct 14 PHP
laravel框架使用阿里云短信发送消息操作示例
Feb 15 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
PHILIPS L4X25T电路分析和打理
2021/03/02 无线电
php生成随机数/生成随机字符串的方法小结【5种方法】
2020/05/27 PHP
IE6图片加载的一个BUG解决方法
2010/07/13 Javascript
基于jquery的兼容各种浏览器的iframe自适应高度的脚本
2010/08/13 Javascript
javascript Array.prototype.slice使用说明
2010/10/11 Javascript
jquery中eq和get的区别与使用方法
2011/04/14 Javascript
javascript一元操作符(递增、递减)使用示例
2013/08/07 Javascript
js获取光标位置和设置文本框光标位置示例代码
2014/01/09 Javascript
基于jQuery+Cookie实现的防止刷新的在线考试倒计时
2015/06/19 Javascript
JavaScript动态改变div属性的实现方法
2015/07/22 Javascript
详解Bootstrap创建表单的三种格式(一)
2016/01/04 Javascript
jQuery图片轮播(二)利用构造函数和原型创建对象以实现继承
2016/12/06 Javascript
基于react后端渲染模板引擎noox发布使用
2018/01/11 Javascript
一步快速解决微信小程序中textarea层级太高遮挡其他组件
2019/03/04 Javascript
nodejs实现获取本地文件夹下图片信息功能示例
2019/06/22 NodeJs
bootstrap table实现横向合并与纵向合并
2019/07/18 Javascript
JavaScript使用localStorage存储数据
2019/09/25 Javascript
原生JS实现贪吃蛇小游戏
2020/03/09 Javascript
VUE项目实现主题切换的多种方法
2020/11/26 Vue.js
详解基于element的区间选择组件校验(交易金额)
2021/01/07 Javascript
Python使用htpasswd实现基本认证授权的例子
2014/06/10 Python
python通过zlib实现压缩与解压字符串的方法
2014/11/19 Python
python:print格式化输出到文件的实例
2018/05/14 Python
TensorFlow打印tensor值的实现方法
2018/07/27 Python
python3.5的包存放的具体路径
2020/08/16 Python
关于python3.9安装wordcloud出错的问题及解决办法
2020/11/02 Python
python解压zip包中文乱码解决方法
2020/11/27 Python
python实现银行账户系统
2021/02/22 Python
html标签之Object和EMBED标签详解
2013/07/04 HTML / CSS
Canvas与图片压缩的示例代码
2017/11/28 HTML / CSS
招商经理岗位职责
2013/11/16 职场文书
《云雀的心愿》教学反思
2014/02/25 职场文书
行政专员岗位职责范本
2014/08/26 职场文书
2014年德育工作总结
2014/11/20 职场文书
python Tkinter的简单入门教程
2021/04/11 Python
MySQL高速缓存启动方法及参数详解(query_cache_size)
2021/07/01 MySQL