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 相关文章推荐
使用Limit参数优化MySQL查询的方法
Nov 12 PHP
PHP 采集获取指定网址的内容
Jan 05 PHP
php 字符串替换的方法
Jan 10 PHP
PHP新手用的Insert和Update语句构造类
Mar 31 PHP
php基本函数汇总
Jul 09 PHP
Yii实现单用户博客系统文章详情页插入评论表单的方法
Dec 28 PHP
php文件类型MIME对照表(比较全)
Oct 07 PHP
Yii框架实现图片上传的方法详解
May 20 PHP
PHP长网址与短网址的实现方法
Oct 13 PHP
PHP排序二叉树基本功能实现方法示例
May 26 PHP
Laravel框架使用monolog_mysql实现将系统日志信息保存到mysql数据库的方法
Aug 16 PHP
Yii2框架中一些折磨人的坑
Dec 15 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
各种咖啡的英文名子是什么
2021/03/03 新手入门
PHP 学习路线与时间表
2010/02/21 PHP
PHP给前端返回一个JSON对象的实例讲解
2018/05/31 PHP
网站导致浏览器崩溃的原因总结(多款浏览器) 推荐
2010/04/15 Javascript
JS修改css样式style浅谈
2013/05/06 Javascript
JS实现不使用图片仿Windows右键菜单效果代码
2015/10/22 Javascript
window.onerror()的用法与实例分析
2016/01/27 Javascript
JS区分Object与Aarry的六种方法总结
2017/02/27 Javascript
原生JS实现左右箭头选择日期实例代码
2017/03/14 Javascript
详解vue2.0组件通信各种情况总结与实例分析
2017/03/22 Javascript
微信小程序教程系列之视图层的条件渲染(10)
2017/04/19 Javascript
vue实现全选、反选功能
2020/11/17 Javascript
ZeroClipboard.js使用一个flash复制多个文本框
2017/06/19 Javascript
详解webpack分包及异步加载套路
2017/06/29 Javascript
JavaScript引用类型之基本包装类型实例分析【Boolean、Number和String】
2018/08/09 Javascript
vue自定义switch开关组件,实现样式可自行更改
2019/11/01 Javascript
Vue使用轮询定时发送请求代码
2020/08/10 Javascript
nuxt引入组件和公共样式的操作
2020/11/05 Javascript
一键搞定python连接mysql驱动有关问题(windows版本)
2016/04/23 Python
Python卸载模块的方法汇总
2016/06/07 Python
Python实现比较扑克牌大小程序代码示例
2017/12/06 Python
Python应用库大全总结
2018/05/30 Python
flask框架中勾子函数的使用详解
2018/08/01 Python
使用Python的SymPy库解决数学运算问题的方法
2019/03/27 Python
python实现的按要求生成手机号功能示例
2019/10/08 Python
利用Python的turtle库绘制玫瑰教程
2019/11/23 Python
css3中background新增的4个新的相关属性用法介绍
2013/09/26 HTML / CSS
CSS3实现瀑布流布局与无限加载图片相册的实例代码
2016/12/22 HTML / CSS
使用HTML5里的classList操作CSS类
2016/06/28 HTML / CSS
大学生学习2014全国两会心得体会
2014/03/13 职场文书
学校安全防火方案
2014/06/07 职场文书
没有孩子的离婚协议书怎么写
2014/09/17 职场文书
2015公务员试用期工作总结
2014/12/12 职场文书
自主招生学校推荐信范文
2015/03/26 职场文书
如何使用php生成zip压缩包
2021/04/21 PHP
Win10开机修复磁盘错误怎么跳过?Win10关闭开机磁盘检查的方法
2022/09/23 数码科技