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 相关文章推荐
mysql5详细安装教程
Jan 15 PHP
php面向对象全攻略 (一) 面向对象基础知识
Sep 30 PHP
php教程 插件机制在PHP中实现方案
Nov 02 PHP
windows下zendframework项目环境搭建(通过命令行配置)
Dec 06 PHP
Apache服务器无法使用的解决方法
May 08 PHP
PHP引用(&)各种使用方法实例详解
Mar 20 PHP
Thinkphp搭建包括JS多语言的多语言项目实现方法
Nov 24 PHP
php通过Chianz.com获取IP地址与地区的方法
Jan 14 PHP
php实现html标签闭合检测与修复方法
Jul 09 PHP
php实现递归的三种基本方式
Jul 04 PHP
php实现学生管理系统
Mar 21 PHP
PHP 判断字符串是中文还是英文, 或者是中英混合
Mar 09 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
给apache2.2加上mod_encoding模块後 php5.2.0 处理url出现bug
2007/04/12 PHP
PHP5.3.1 不再支持ISAPI
2010/01/08 PHP
php二分查找二种实现示例
2014/03/12 PHP
yii2.0整合阿里云oss的示例代码
2017/09/19 PHP
php-fpm中max_children的配置
2019/03/15 PHP
laravel 框架实现无限级分类的方法示例
2019/10/31 PHP
yii2.0框架场景的简单使用示例
2020/01/25 PHP
javascript attachEvent绑定多个事件执行顺序问题
2010/10/20 Javascript
jQuery Clone Bug解决代码
2010/12/22 Javascript
js 编程笔记 无名函数
2011/06/28 Javascript
javascript数字格式化通用类 accounting.js使用
2012/08/24 Javascript
充分发挥Node.js程序性能的一些方法介绍
2015/06/23 Javascript
Highcharts入门之简介
2016/08/02 Javascript
ES6所改良的javascript“缺陷”问题
2016/08/23 Javascript
BootStrap整体框架之基础布局组件
2016/12/15 Javascript
js选项卡的制作方法
2017/01/23 Javascript
Vue利用canvas实现移动端手写板的方法
2018/05/03 Javascript
Vue自定义表单内容检查rules实例
2020/10/30 Javascript
vue实现简易的双向数据绑定
2020/12/29 Vue.js
Python中dictionary items()系列函数的用法实例
2014/08/21 Python
python生成日历实例解析
2014/08/21 Python
Python实现设置windows桌面壁纸代码分享
2015/03/28 Python
在Django中使用Sitemap的方法讲解
2015/07/22 Python
python计算列表内各元素的个数实例
2018/06/29 Python
Python并发:多线程与多进程的详解
2019/01/24 Python
Python QQBot库的QQ聊天机器人
2019/06/19 Python
Python生成词云的实现代码
2020/01/14 Python
Python + opencv对拍照得到的图片进行背景去除的实现方法
2020/11/18 Python
CSS3实现可爱的小黄人动画
2016/07/11 HTML / CSS
环境科学专业个人求职的自我评价
2013/11/28 职场文书
会计专业大学生求职信范文
2014/01/28 职场文书
《夸父追日》教学反思
2014/02/26 职场文书
文艺晚会开场白
2015/05/29 职场文书
Nginx中break与last的区别详析
2021/03/31 Servers
使用vue判断当前环境是安卓还是IOS
2022/04/12 Vue.js
解决Springboot PostMapping无法获取数据的问题
2022/05/06 Java/Android