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 相关文章推荐
使用 MySQL 开始 PHP 会话
Dec 21 PHP
php zlib压缩和解压缩swf文件的代码
Dec 30 PHP
php中使用ExcelFileParser处理excel获得数据(可作批量导入到数据库使用)
Aug 21 PHP
PHP引用符&的用法详细解析
Aug 22 PHP
Zend studio文件注释模板设置方法
Sep 29 PHP
PHP生成plist数据的方法
Jun 16 PHP
PHP中static关键字以及与self关键字的区别
Jul 01 PHP
php通过会话控制实现身份验证实例
Oct 18 PHP
php 一维数组的循环遍历实现代码
Apr 10 PHP
Django中通过定时任务触发页面静态化的处理方式
Aug 29 PHP
PHP的cookie与session原理及用法详解
Sep 27 PHP
解决laravel-admin 自己新建页面里 js 需要刷新一次的问题
Oct 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使用explode()函数将字符串拆分成数组的方法
2015/02/17 PHP
php专用数组排序类ArraySortUtil用法实例
2015/04/03 PHP
PHP后台实现微信小程序登录
2018/08/03 PHP
ThinkPHP5+UEditor图片上传到阿里云对象存储OSS功能示例
2019/08/05 PHP
jquery 删除cookie失效的解决方法
2013/11/12 Javascript
jQuery入门介绍之基础知识
2015/01/13 Javascript
在线所见即所得HTML编辑器的实现原理浅析
2015/04/25 Javascript
轻松学习jQuery插件EasyUI EasyUI创建CRUD应用
2015/11/30 Javascript
JavaScript操作select元素和option的实例代码
2016/01/29 Javascript
如何解决hover在ie6中的兼容性问题
2016/12/15 Javascript
Vuex 进阶之模块化组织详解
2018/01/12 Javascript
vue小白入门教程
2018/04/02 Javascript
js正则表达式校验指定字符串的方法
2018/07/23 Javascript
layer弹出框确定前验证:弹出消息框的方法(弹出两个layer)
2019/09/21 Javascript
javascript canvas时钟模拟器
2020/07/13 Javascript
vue自定义组件(通过Vue.use()来使用)即install的用法说明
2020/08/11 Javascript
微信小程序基于高德地图API实现天气组件(动态效果)
2020/10/22 Javascript
[02:18]《我与DAC》之工作人员:为了热爱DOTA2的玩家们
2018/03/28 DOTA
Python中3种内建数据结构:列表、元组和字典
2014/11/30 Python
python文件读写操作与linux shell变量命令交互执行的方法
2015/01/14 Python
进一步探究Python的装饰器的运用
2015/05/05 Python
Python基于QRCode实现生成二维码的方法【下载,安装,调用等】
2017/07/11 Python
Python实用工具FuckIt.py介绍
2019/07/02 Python
简单了解python 生成器 列表推导式 生成器表达式
2019/08/22 Python
6种非常炫酷的CSS3按钮边框动画特效
2016/03/16 HTML / CSS
Canvas中设置width与height的问题浅析
2018/11/01 HTML / CSS
秋季运动会广播稿
2014/02/22 职场文书
机械电子工程专业求职信
2014/06/22 职场文书
个人三严三实对照检查材料思想汇报
2014/09/22 职场文书
领导干部整治奢华浪费之风思想汇报
2014/10/07 职场文书
培训班开班主持词
2015/07/02 职场文书
驾驶员管理制度范本
2015/08/06 职场文书
Django drf请求模块源码解析
2021/06/08 Python
解决xampp安装后Apache无法启动
2022/03/21 Servers
django项目、vue项目部署云服务器的详细过程
2022/07/23 Servers
Win10系统搭建ftp文件服务器详细教程
2022/08/05 Servers