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 相关文章推荐
isset和empty的区别
Jan 15 PHP
PHP print类函数使用总结
Jun 25 PHP
php数字转汉字代码(算法)
Oct 08 PHP
php中current、next与reset函数用法实例
Nov 17 PHP
PHP+Mysql基于事务处理实现转账功能的方法
Jul 08 PHP
php模板引擎技术简单实现
Mar 15 PHP
php获取给定日期相差天数的方法分析
Feb 20 PHP
Kindeditor编辑器添加图片上传水印功能(php代码)
Aug 03 PHP
详解php与ethereum客户端交互
Apr 28 PHP
ThinkPHP实现的rsa非对称加密类示例
May 29 PHP
laravel使用数据库测试注意事项
Apr 10 PHP
PHP接口类(interface)的定义、特点和应用示例
May 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结合飞信 免费天气预报短信
2009/05/07 PHP
利用PHP脚本在Linux下用md5函数加密字符串的方法
2015/06/29 PHP
Symfony生成二维码的方法
2016/02/04 PHP
php禁用cookie后session设置方法分析
2016/10/19 PHP
ThinkPHP实现简单登陆功能
2017/04/28 PHP
PHP读取CSV大文件导入数据库的实例
2017/07/24 PHP
js 新浪的一个图片播放图片轮换效果代码
2008/07/15 Javascript
jquery实现带复选框的表格行选中删除时高亮显示
2013/08/01 Javascript
JS实现两个大数(整数)相乘
2014/04/28 Javascript
使用JavaScript和C#中获得referer
2014/11/14 Javascript
适用于javascript开发者的Processing.js入门教程
2016/02/24 Javascript
详解JavaScript for循环中发送AJAX请求问题
2020/06/23 Javascript
JS识别浏览器类型(电脑浏览器和手机浏览器)
2016/11/18 Javascript
jQuery Masonry瀑布流布局神器使用详解
2017/05/25 jQuery
简单谈谈js的数据类型
2017/09/25 Javascript
JS实现网页抢购功能(触发,终止脚本)
2017/11/27 Javascript
vue-cli项目中使用Mockjs详解
2018/05/14 Javascript
Node 升级到最新稳定版的方法分享
2018/05/17 Javascript
[45:10]NB vs Liquid Supermajor小组赛 A组胜者组决赛 BO3 第二场 6.2
2018/06/04 DOTA
详解python 拆包可迭代数据如tuple, list
2017/12/29 Python
Python程序运行原理图文解析
2018/02/10 Python
python在OpenCV里实现投影变换效果
2019/08/30 Python
python super函数使用方法详解
2020/02/14 Python
解决pycharm编辑区显示yaml文件层级结构遇中文乱码问题
2020/04/27 Python
python中元组的用法整理
2020/06/15 Python
Python中logging日志的四个等级和使用
2020/11/17 Python
戴森美国官网:Dyson美国
2016/09/11 全球购物
华硕新加坡官方网上商店:ASUS Singapore
2020/07/09 全球购物
用C语言实现文件读写操作
2013/10/27 面试题
static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
2015/02/22 面试题
施工安全承诺书
2014/05/22 职场文书
乡镇干部个人对照检查材料(群众路线)
2014/09/26 职场文书
2014幼儿园小班工作总结
2014/11/10 职场文书
《藏戏》教学反思
2016/02/23 职场文书
2019初中学生入团申请书
2019/06/27 职场文书
python数据分析之单因素分析线性拟合及地理编码
2022/06/25 Python