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技巧与注意事项分析
Feb 03 PHP
PHP中如何定义和使用常量
Feb 28 PHP
php 无法加载mcrypt.dll的解决办法
Apr 03 PHP
php快速查找数据库中恶意代码的方法
Apr 01 PHP
php动态变量定义及使用
Jun 10 PHP
PHP发送短信代码分享
Aug 11 PHP
学习php设计模式 php实现门面模式(Facade)
Dec 07 PHP
PHP在innodb引擎下快速代建全文搜索功能简明教程【基于xunsearch】
Oct 14 PHP
php str_getcsv把字符串解析为数组的实现方法
Apr 05 PHP
laravel 出现command not found问题的解决方案
Oct 23 PHP
PHP fopen中文文件名乱码问题解决方案
Oct 28 PHP
详解thinkphp的Auth类认证
May 28 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 switch语句多个值匹配同一代码块应用示例
2014/07/29 PHP
php计算多维数组中所有值总和的方法
2015/06/24 PHP
PHP版本常用的排序算法汇总
2015/12/20 PHP
php文件管理基本功能简单操作
2017/01/16 PHP
PHP后期静态绑定实例浅析
2018/12/21 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
BOOM vs RR BO5 第三场 2.14
2021/03/10 DOTA
基于jQuery的一个扩展form序列化到json对象
2010/12/09 Javascript
jQuery密码强度检测插件passwordStrength用法实例分析
2015/10/30 Javascript
jQuery实现为控件添加水印文字效果(附源码)
2015/12/02 Javascript
jQuery自定义滚动条完整实例
2016/01/08 Javascript
JS读取XML文件数据并以table形式显示数据的方法(兼容IE与火狐)
2016/06/02 Javascript
js手动播放图片实现图片轮播效果
2016/09/17 Javascript
利用canvas中toDataURL()将图片转为dataURL(base64)的方法详解
2017/11/20 Javascript
js实现控制文件拖拽并获取拖拽内容功能
2018/02/17 Javascript
微信小程序自定义弹窗wcPop插件
2018/11/19 Javascript
自定义Vue组件打包、发布到npm及使用教程
2019/05/22 Javascript
浅谈layui 绑定form submit提交表单的注意事项
2019/10/25 Javascript
JS 数组基本用法入门示例解析
2020/01/16 Javascript
jQuery实现简易聊天框
2020/02/08 jQuery
在vue中动态修改css其中一个属性值操作
2020/12/07 Vue.js
Python捕捉和模拟鼠标事件的方法
2015/06/03 Python
python爬虫入门教程--正则表达式完全指南(五)
2017/05/25 Python
python timestamp和datetime之间转换详解
2017/12/11 Python
Python读取mat文件,并转为csv文件的实例
2018/07/04 Python
python单例模式的应用场景实例讲解
2021/02/24 Python
意大利买卖二手奢侈品网站:LAMPOO
2020/06/03 全球购物
"引用"与多态的关系
2013/02/01 面试题
高校学生干部的自我评价分享
2013/11/04 职场文书
师德学习感言
2014/01/31 职场文书
大学校务公开实施方案
2014/03/31 职场文书
老公保证书范文
2014/04/29 职场文书
反腐倡廉警示教育活动总结
2014/05/05 职场文书
师德师风学习材料
2014/12/19 职场文书
2015年基层党建工作汇报材料
2015/06/25 职场文书
python如何读取和存储dict()与.json格式文件
2022/06/25 Python