PHP面相对象中的重载与重写


Posted in PHP onFebruary 13, 2017

重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。Overloaded的方法是可以改变返回值的类型。也就是说,重载的返回值类型可以相同也可以不同。

重载(Overloading)

a、方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。重载Overloading是一个类中多态性的一种表现。

b、Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性。

c 、重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同。无法以返回型别作为重载函数的区分标准。

2、重写(Overriding)

a、父类与子类之间的多态性,对父类的函数进行重新定义。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。在Java中子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。

b、若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法。**如需父类中原有的方法,可使用super关键字,该关键字引用了当前类的父类**。

c、子类函数的访问修饰权限不能少于父类的;

如果父类成员方法的名字、返回类型、参数类型以及个数完全相同,只是其内部的代码不同,在Java中将这种重写方式叫做成员方法重构

子类中可以重新调整父类方法中的权限(从小气到大方)、扩展或者重新调整父类的功能等等,从而往往让子类青处于蓝,而胜于蓝。在开发过程中,程序开发人员要使用好子类的这些特性。不过从另一种角度讲,也需要对子类的权限进行一定的限制。在必要的时候要在父类中对某些方法进行权限的控制,防止其被子类滥用。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

PHP 相关文章推荐
桌面中心(一)创建数据库
Oct 09 PHP
利用PHP实现与ASP Banner组件相似的类
Oct 09 PHP
10条PHP编程习惯助你找工作
Sep 29 PHP
PHP中10个不常见却非常有用的函数
Mar 21 PHP
php学习之数据类型之间的转换介绍
Jun 09 PHP
那些年一起学习的PHP(二)
Mar 21 PHP
PHP实现的json类实例
Jul 28 PHP
PHP中SSO Cookie登录分析和实现
Nov 06 PHP
phpmailer绑定邮箱的实现方法
Dec 01 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
Sep 20 PHP
PHP设计模式之PHP迭代器模式讲解
Mar 22 PHP
PHP实现获取文件mime类型多种方法解析
May 28 PHP
PHP中overload与override的区别
Feb 13 #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
You might like
让你同时上传 1000 个文件 (一)
2006/10/09 PHP
php中模拟POST传递数据的两种方法分享
2011/09/16 PHP
优化PHP代码技巧的小结
2013/06/02 PHP
Laravel 5.0 发布 新版本特性详解
2015/02/10 PHP
Windows下wamp php单元测试工具PHPUnit安装及生成日志文件配置方法
2018/05/28 PHP
php创建类并调用的实例方法
2019/09/25 PHP
脚本吧 - 幻宇工作室用到js,超强推荐base.js
2006/12/23 Javascript
jQuery实现切换页面布局使用介绍
2011/10/09 Javascript
javascript:window.open弹出窗口的位置问题
2014/03/18 Javascript
jquery实现选中单选按钮下拉伸缩效果
2015/08/06 Javascript
jQuery下拉友情链接美化效果代码分享
2015/08/26 Javascript
EasyUI的doCellTip实现鼠标放到单元格上提示单元格内容
2016/08/24 Javascript
Node.js开启Https的实践详解
2016/10/25 Javascript
学习JavaScript图片预加载模块
2016/11/07 Javascript
jQuery编写设置和获取颜色的插件
2017/01/09 Javascript
关于Javascript中document.cookie的使用
2017/03/08 Javascript
一篇看懂vuejs的状态管理神器 vuex状态管理模式
2017/04/20 Javascript
d3.js入门教程之数据绑定详解
2017/04/28 Javascript
JavaScript实现提交模式窗口后刷新父窗口数据的方法
2017/06/16 Javascript
javascript使用正则实现去掉字符串前面的所有0
2018/07/23 Javascript
VUE实现可随意拖动的弹窗组件
2018/09/25 Javascript
Python守护进程用法实例分析
2015/06/04 Python
Python二次规划和线性规划使用实例
2019/12/09 Python
python enumerate内置函数用法总结
2020/01/07 Python
Python找出列表中出现次数最多的元素三种方式
2020/02/24 Python
Python字符串格式化常用手段及注意事项
2020/06/17 Python
3个CCIE对一个工程师的面试题
2012/05/06 面试题
软件设计的目标是什么
2016/12/04 面试题
食品行业求职人的自我评价
2014/01/19 职场文书
少先队活动总结
2014/08/29 职场文书
房屋租赁合同补充协议
2014/10/11 职场文书
2014年小学教研工作总结
2014/12/06 职场文书
经济纠纷起诉状
2015/05/20 职场文书
小学生暑假安全公约
2015/07/14 职场文书
七年级作文(600字3篇)
2019/09/24 职场文书
使用CSS连接数据库的方式
2022/02/28 HTML / CSS