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 相关文章推荐
PHP PDO函数库详解
Apr 27 PHP
Codeigniter操作数据库表的优化写法总结
Jun 12 PHP
jQuery+PHP+ajax实现微博加载更多内容列表功能
Jun 27 PHP
改写ThinkPHP的U方法使其路由下分页正常
Jul 02 PHP
ThinkPHP中redirect用法分析
Dec 05 PHP
PHP面向对象程序设计组合模式与装饰模式详解
Dec 02 PHP
laravel5.2实现区分前后台用户登录的方法
Jan 11 PHP
PHP实现限制IP访问的方法
Apr 20 PHP
PHP实现生成推广海报的方法详解
Mar 14 PHP
php使用QueryList轻松采集js动态渲染页面方法
Sep 11 PHP
ThinkPHP框架下微信支付功能总结踩坑笔记
Apr 10 PHP
Yii框架实现对数据库的CURD操作示例
Sep 03 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
php中static静态变量的使用方法详解
2010/06/04 PHP
php结合ACCESS的跨库查询功能
2015/06/12 PHP
iis6手工创建网站后无法运行php脚本的解决方法
2017/06/08 PHP
PHP 应用容器化以及部署方法
2018/02/12 PHP
Thinkphp 框架扩展之行为扩展原理与实现方法分析
2020/04/23 PHP
javascript之可拖动的iframe效果代码
2008/08/01 Javascript
9个javascript语法高亮插件 推荐
2009/07/18 Javascript
Prototype Selector对象学习
2009/07/23 Javascript
10款非常有用的 Ajax 插件分享
2012/03/14 Javascript
jquery插件制作教程 txtHover
2012/08/17 Javascript
jquery中选择块并改变属性值的方法
2013/07/31 Javascript
js打造数组转json函数
2015/01/14 Javascript
为JS扩展Array.prototype.indexOf引发的问题及解决办法
2015/01/21 Javascript
jQuery实现连续动画效果实例分析
2015/10/09 Javascript
javascript从定义到执行 你不知道的那些事
2016/01/04 Javascript
js实现ctrl+v粘贴上传图片(兼容chrome、firefox、ie11)
2016/03/09 Javascript
js提取中文拼音首字母的封装工具类
2018/03/12 Javascript
vue配置nprogress实现页面顶部进度条
2019/09/21 Javascript
微信小程序实现时间进度条功能
2020/11/17 Javascript
[01:09]DOTA2次级职业联赛 - 99战队宣传片
2014/12/01 DOTA
[01:13:08]2018DOTA2亚洲邀请赛4.6 淘汰赛 mineski vs LGD 第二场
2018/04/10 DOTA
python实现简单图片物体标注工具
2019/03/18 Python
Python自动抢红包教程详解
2019/06/11 Python
Gauss-Seidel迭代算法的Python实现详解
2019/06/29 Python
python从zip中删除指定后缀文件(推荐)
2019/12/05 Python
Python3 Tensorlfow:增加或者减小矩阵维度的实现
2020/05/22 Python
python调用百度API实现人脸识别
2020/11/17 Python
在线课程:Skillshare
2019/04/02 全球购物
New Balance法国官方网站:购买鞋子和服装
2019/09/01 全球购物
J2EE面试题大全
2016/08/06 面试题
心理健康日活动总结
2014/05/08 职场文书
2016个人先进事迹材料范文
2016/03/01 职场文书
浅谈Python数学建模之整数规划
2021/06/23 Python
实体类或对象序列化时,忽略为空属性的操作
2021/06/30 Java/Android
Nginx防盗链与服务优化配置的全过程
2022/01/18 Servers
Python开发五子棋小游戏
2022/04/28 Python