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 第二节 数据类型之数值型
Apr 28 PHP
PHP的switch判断语句的“高级”用法详解
Oct 01 PHP
php集成套件服务器xampp安装使用教程(适合第一次玩PHP的新手)
Jun 03 PHP
PHP+Mysql基于事务处理实现转账功能的方法
Jul 08 PHP
简单谈谈PHP vs Node.js
Jul 17 PHP
PHP+Mysql+jQuery文件下载次数统计实例讲解
Oct 10 PHP
Zend Framework框架之Zend_Mail实现发送Email邮件验证功能及解决标题乱码的方法
Mar 21 PHP
Yii2中事务的使用实例代码详解
Sep 07 PHP
php 一维数组的循环遍历实现代码
Apr 10 PHP
PHP实现下载远程图片保存到本地的方法
Jun 19 PHP
Laravel 批量更新多条数据的示例
Nov 27 PHP
PHP时间相关常用函数用法示例
Jun 03 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 编写的 25个游戏脚本
2009/05/11 PHP
PHP与Perl之间知识点区别整理
2019/03/19 PHP
js 连接数据库如何操作数据库中的数据
2012/11/23 Javascript
jquery属性选择器not has怎么写 行悬停高亮显示
2013/11/13 Javascript
js控制input框只读实现示例
2014/01/20 Javascript
jQuery的选择器中的通配符使用介绍
2014/03/20 Javascript
js实现遮罩层划出效果是生成div而不是显示
2014/07/29 Javascript
JQuery ztree带筛选、异步加载实例讲解
2016/02/25 Javascript
快速解决js中window.location.href不工作的问题
2016/11/02 Javascript
AngularJS中run方法的巧妙运用
2017/01/04 Javascript
详解angular2实现ng2-router 路由和嵌套路由
2017/03/24 Javascript
Angular4 中常用的指令入门总结
2017/06/12 Javascript
实例分析js事件循环机制
2017/12/13 Javascript
JS实现带导航城市列表以及输入搜索功能
2018/01/04 Javascript
微信小程序常用赋值方法小结
2019/04/30 Javascript
微信小程序bindtap事件与冒泡阻止详解
2019/08/08 Javascript
[53:52]OG vs EG 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
[03:15]DOTA2-DPC中国联赛1月22日Recap集锦
2021/03/11 DOTA
python对字典进行排序实例
2014/09/25 Python
python使用PyGame模块播放声音的方法
2015/05/20 Python
Python下Fabric的简单部署方法
2015/07/14 Python
Python简单获取自身外网IP的方法
2016/09/18 Python
python增加矩阵维度的实例讲解
2018/04/04 Python
对numpy.append()里的axis的用法详解
2018/06/28 Python
使用python绘制3维正态分布图的方法
2018/12/29 Python
详解Appium+Python之生成html测试报告
2019/01/04 Python
Django 创建后台,配置sqlite3教程
2019/11/18 Python
详解python中的异常和文件读写
2021/01/03 Python
解决html5中的video标签ios系统中无法播放使用的问题
2020/08/10 HTML / CSS
师范毕业生自荐信
2013/10/17 职场文书
数控机械专业个人的自我评价
2014/01/02 职场文书
世博会口号
2014/06/20 职场文书
大学生自荐信范文
2015/03/05 职场文书
中小企业员工手册范本
2015/05/14 职场文书
小学三年级班主任工作经验交流材料
2015/11/02 职场文书
从原生JavaScript到React深入理解
2022/07/23 Javascript