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 MYSQL 数据备份类
Jun 19 PHP
使用PHP遍历文件夹与子目录的函数代码
Sep 26 PHP
php插入中文到sqlserver 2008里出现乱码的解决办法分享
Jul 19 PHP
基于simple_html_dom的使用小结
Jul 01 PHP
支持中文、字母、数字的PHP验证码
May 04 PHP
PHP加密解密函数详解
Oct 28 PHP
PHP读取大文件的多种方法介绍
Apr 04 PHP
php动态读取数据清除最右边距的方法
Apr 12 PHP
PHP小白必须要知道的php基础知识(超实用)
Oct 10 PHP
PHP使用pdo实现事务处理操作示例
Sep 05 PHP
laravel http 自定义公共验证和响应的方法
Sep 29 PHP
Laravel 集成微信用户登录和绑定的实现
Dec 27 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
2019十大人气国漫
2020/03/13 国漫
老机欣赏|中国60年代精品收音机
2021/03/02 无线电
PDO防注入原理分析以及使用PDO的注意事项总结
2014/10/23 PHP
摘自织梦CMS中的图片处理类
2015/08/08 PHP
封装的jquery翻页滚动(示例代码)
2013/11/18 Javascript
js中document.write的那点事
2014/12/12 Javascript
轻松创建nodejs服务器(10):处理上传图片
2014/12/18 NodeJs
jQuery构造函数init参数分析续
2015/05/13 Javascript
javascript跨域方法、原理以及出现问题解决方法(详解)
2015/08/06 Javascript
javascript封装简单实现方法
2015/08/11 Javascript
初识angular框架后的所思所想
2016/02/19 Javascript
浅谈JS继承_寄生式继承 & 寄生组合式继承
2016/08/16 Javascript
jQuery 特性操作详解及实例代码
2016/09/29 Javascript
JavaScript实现二分查找实例代码
2017/02/22 Javascript
一道面试题引发的对javascript类型转换的思考
2017/03/06 Javascript
JS仿Base.js实现的继承示例
2017/04/07 Javascript
JavaScript箭头(arrow)函数详解
2017/06/04 Javascript
微信小程序排坑指南详解
2018/05/23 Javascript
JS+H5 Canvas实现时钟效果
2018/07/20 Javascript
微信小程序出现wx.getLocation再次授权问题的解决方法分析
2019/01/16 Javascript
深入理解vue中的slot与slot-scope
2019/04/22 Javascript
react PropTypes校验传递的值操作示例
2020/04/28 Javascript
原生js canvas实现鼠标跟随效果
2020/08/02 Javascript
JS中多层次排序算法的实现代码
2021/01/06 Javascript
[01:05:41]EG vs Optic Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
python3安装pip3(install pip3 for python 3.x)
2018/04/03 Python
python脚本执行CMD命令并返回结果的例子
2019/08/14 Python
python基础 range的用法解析
2019/08/23 Python
Pandas实现dataframe和np.array的相互转换
2019/11/30 Python
PyQt5 文本输入框自动补全QLineEdit的实现示例
2020/05/13 Python
关于PyCharm安装后修改路径名称使其可重新打开的问题
2020/10/20 Python
Omio俄罗斯:一次搜索公共汽车、火车和飞机的机票
2018/11/17 全球购物
中间件分为哪几类
2016/09/18 面试题
实习生个人找工作的自我评价
2013/10/30 职场文书
节约用水标语
2014/06/11 职场文书
通讯稿范文
2015/07/22 职场文书