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分页时出现的Fatal error的解决方法
Apr 18 PHP
fleaphp crud操作之findByField函数的使用方法
Apr 23 PHP
php 数组的一个悲剧?
May 11 PHP
php三维数组去重(示例代码)
Nov 26 PHP
php网页标题中文乱码的有效解决方法
Mar 05 PHP
你可能不知道PHP get_meta_tags()函数
May 12 PHP
ThinkPHP字符串函数及常用函数汇总
Jul 18 PHP
php的GD库imagettftext函数解决中文乱码问题
Jan 24 PHP
PHP模板引擎Smarty中变量的使用方法示例
Apr 11 PHP
PHP分页初探 一个最简单的PHP分页代码的简单实现
Jun 21 PHP
Laravel框架路由管理简单示例
May 07 PHP
PHP进阶学习之类的自动加载机制原理分析
Jun 18 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 mkdir()无写权限的问题解决方法
2014/06/19 PHP
PHP使用Pear发送邮件(Windows环境)
2016/01/05 PHP
浅谈PHP中其他类型转化为Bool类型
2016/03/28 PHP
PHP实现链式操作的三种方法详解
2017/11/16 PHP
jQuery中操控hidden、disable等无值属性的方法
2014/01/06 Javascript
使用jQuery仿苹果官网焦点图特效
2014/12/23 Javascript
javascript实现列表切换效果
2016/05/02 Javascript
JS留言功能的简单实现案例(推荐)
2016/06/23 Javascript
Bootstrap CSS布局之表格
2016/12/17 Javascript
input获取焦点时底部菜单被顶上来问题的解决办法
2017/01/24 Javascript
JavaScript数据结构之二叉树的查找算法示例
2017/04/13 Javascript
react 创建单例组件的方法
2018/04/26 Javascript
JavaScript实现的文本框placeholder提示文字功能示例
2018/07/25 Javascript
JavaScript解析及序列化JSON的方法实例分析
2019/01/04 Javascript
为vue项目自动设置请求状态的配置方法
2019/06/09 Javascript
[30:51]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#1Liquid VS MVP.Phx第一局
2016/03/04 DOTA
按日期打印Python的Tornado框架中的日志的方法
2015/05/02 Python
简单介绍使用Python解析并修改XML文档的方法
2015/10/15 Python
深入解析Python中的list列表及其切片和迭代操作
2016/03/13 Python
Python实现计算最小编辑距离
2016/03/17 Python
编写Python爬虫抓取暴走漫画上gif图片的实例分享
2016/04/20 Python
Python实现读取并保存文件的类
2017/05/11 Python
django解决跨域请求的问题
2018/11/11 Python
python实现狄克斯特拉算法
2019/01/17 Python
pyqt5 comboBox获得下标、文本和事件选中函数的方法
2019/06/14 Python
用Python实现二叉树、二叉树非递归遍历及绘制的例子
2019/08/09 Python
Python Tkinter模块 GUI 可视化实例
2019/11/20 Python
python之生成多层json结构的实现
2020/02/27 Python
使用pytorch 筛选出一定范围的值
2020/06/28 Python
python如何使用代码运行助手
2020/07/03 Python
耐克波兰官方网站:Nike波兰
2019/09/03 全球购物
什么是Rollback Segment
2013/04/22 面试题
护士辞职信模板
2014/01/20 职场文书
《索溪峪的野》教学反思
2016/02/19 职场文书
TypeScript 使用 Tuple Union 声明函数重载
2022/04/07 Javascript
基于redis+lua进行限流的方法
2022/07/23 Redis