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 小乘法表实现代码
Jul 16 PHP
PHP文件读写操作之文件读取方法详解
Jan 13 PHP
php设计模式 Decorator(装饰模式)
Jun 26 PHP
IIS6.0中配置php服务全过程解析
Aug 07 PHP
php判断正常访问和外部访问的示例
Feb 10 PHP
php面向对象与面向过程两种方法给图片添加文字水印
Aug 26 PHP
php采用session实现防止页面重复刷新
Dec 24 PHP
PHP模板引擎Smarty之配置文件在模板变量中的使用方法示例
Apr 11 PHP
php rsa 加密,解密,签名,验签详解
Dec 06 PHP
详谈PHP中public,private,protected,abstract等关键字的用法
Dec 31 PHP
php JWT在web端中的使用方法教程
Sep 06 PHP
PHP 计算至少是其他数字两倍的最大数的实现代码
May 26 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加密解密示例分享
2014/01/29 PHP
php实现cookie加密的方法
2015/03/10 PHP
PHP使用数组实现矩阵数学运算的方法示例
2017/05/29 PHP
fromCharCode和charCodeAt 方法
2006/12/27 Javascript
jquery动态添加删除一行数据示例
2014/06/12 Javascript
在线所见即所得HTML编辑器的实现原理浅析
2015/04/25 Javascript
javascript实现在下拉列表中显示多级树形菜单的方法
2015/08/12 Javascript
jQuery实现的文字hover颜色渐变效果实例
2016/02/20 Javascript
JS实现的自定义水平滚动字体插件完整实例
2016/06/17 Javascript
AngularJS基础 ng-csp 指令详解
2016/08/01 Javascript
jQuery基于BootStrap样式实现无限极地区联动
2016/08/26 Javascript
node操作mysql数据库实例详解
2017/03/17 Javascript
整理关于Bootstrap警示框的慕课笔记
2017/03/29 Javascript
JavaScript实现图片无缝滚动效果
2017/07/07 Javascript
jQuery EasyUI的TreeGrid查询功能实现方法
2017/08/08 jQuery
对angular4子路由&辅助路由详解
2018/10/09 Javascript
JavaScript实现汉字转换为拼音及缩写的方法示例
2019/03/28 Javascript
在vue中对数组值变化的监听与重新响应渲染操作
2020/07/17 Javascript
Python使用MD5加密算法对字符串进行加密操作示例
2018/03/30 Python
Python数据类型之Dict字典实例详解
2019/05/07 Python
TensorFlow基于MNIST数据集实现车牌识别(初步演示版)
2019/08/05 Python
TensorFlow Autodiff自动微分详解
2020/07/06 Python
利用python下载scihub成文献为PDF操作
2020/07/09 Python
澳大利亚宠物商店:Petbarn
2017/11/18 全球购物
苏格兰销售女装、男装和童装的连锁店:M&Co
2018/03/16 全球购物
美国男士和女士奢侈品折扣手表购物网站:Certified Watch Store
2018/06/13 全球购物
廉价连衣裙和婚纱礼服在线销售:Tbdress
2019/02/28 全球购物
Book Depository欧盟:一家领先的国际图书零售商
2019/05/21 全球购物
美国围栏公司:Walpole Outdoors
2019/11/19 全球购物
Android面试宝典
2013/08/06 面试题
求职推荐信
2013/10/28 职场文书
个人实用的自我评价范文
2013/11/23 职场文书
人力资源求职信
2014/05/25 职场文书
三月学雷锋活动总结
2014/06/26 职场文书
JS精髓原型链继承及构造函数继承问题纠正
2022/06/16 Javascript
Windows Server 修改远程桌面端口的实现
2022/06/25 Servers