php继承中方法重载(覆盖)的应用场合


Posted in PHP onFebruary 09, 2015

本文实例分析了php继承中方法重载(覆盖)的应用场合。分享给大家供大家参考。具体分析如下:

方法重载(override)/覆盖——在什么情况下使用:当父类知道所有的子类都需要用到一个方法,但父类不知道怎么去写这个方法时,就需要用到方法的重载。这时候,可以让子类去重写,来覆盖这个方法。

通俗实例——父类(动物)知道其子类(猫和狗)都会叫,但它们的叫法都不一样,所以父类没法去写这个方法,只能让子类(猫和狗)去定义。代码如下:

<?php
class Animal{
 public $name;
 protected $price;
 
 function cry(){
 echo "不知道动物怎么叫";
 }
}
class Dog extends Animal{
 function cry(){
 echo "汪汪...";
 }
}
class Pig extends Animal{
 function cry(){
 echo "哼哼..."
 }
}
?>

方法重载/覆盖的要点与细节(读起来有点呦口):

1、要求子类的方法,其方法名称、参数列表与父类方法一模一样。如例子中cry(),不能添加参数,改成cry($naaa)等。注意:这里并不要求参数名一样,只是要求参数的个数是一样的。
2、所谓的重载或覆盖,并不是将父类的方法覆盖。也可以这么理解:如果子类有调用该方法时,如果在自己类里找不到这个方法,那么它会去找父类里,看有没有这个方法。这也是多态的理解
3、如果子类里某个方法,要把父类里相同名称方法里的内容继承下来,可以使用 parent::方法名 或 父类名::方法名 继承。在子类定义的方法内使用。
4、访问权限问题,子类的访问范围>=父类的访问范围,即如果父类是protected function cry(),子类则只能是protected或public。

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
一个简单的域名注册情况查询程序
Oct 09 PHP
ThinkPHP模版中导入CSS和JS文件的方法
Nov 29 PHP
php使用curl打开https网站的方法
Jun 17 PHP
如何使用php实现评委评分器
Jul 31 PHP
yii2中结合gridview如何使用modal弹窗实例代码详解
Jun 12 PHP
PHP通过CURL实现定时任务的图片抓取功能示例
Oct 03 PHP
PDO的安全处理与事物处理方法
Oct 31 PHP
php遍历替换目录下文件指定内容的方法
Nov 10 PHP
thinkphp 中的volist标签在ajax操作中的特殊性(推荐)
Jan 15 PHP
tp5实现微信小程序多图片上传到服务器功能
Jul 16 PHP
Laravel框架源码解析之反射的使用详解
May 14 PHP
通过PHP实现用户注册后邮箱验证激活
Nov 10 PHP
php抽象类使用要点与注意事项分析
Feb 09 #PHP
PHP中的socket_read和socket_recv区别详解
Feb 09 #PHP
支持png透明图片的php生成缩略图类分享
Feb 08 #PHP
基于GD2图形库的PHP生成图片缩略图类代码分享
Feb 08 #PHP
php中get_object_vars()方法用法实例
Feb 08 #PHP
php面向对象中static静态属性与方法的内存位置分析
Feb 08 #PHP
php面向对象中static静态属性和静态方法的调用
Feb 08 #PHP
You might like
PHP cron中的批处理
2008/09/16 PHP
php强制文件下载而非在浏览器打开的自定义函数分享
2014/05/08 PHP
PHP面向对象程序设计之类常量用法实例
2014/08/20 PHP
在Mac OS上自行编译安装Apache服务器和PHP解释器
2015/12/24 PHP
Laravel接收前端ajax传来的数据的实例代码
2017/07/20 PHP
Javascript实例教程(19) 使用HoTMetal(7)
2006/12/23 Javascript
转自Jquery官方 jQuery1.1.3发布,速度提升800%,体积保持20K
2007/08/19 Javascript
Jquery 过滤器(first,last,not,even,odd)的使用
2014/01/22 Javascript
javaScript中push函数用法实例分析
2015/06/08 Javascript
javascript设置页面背景色及背景图片的方法
2015/12/29 Javascript
实例讲解JS中setTimeout()的用法
2016/01/28 Javascript
NodeJS连接MongoDB数据库时报错的快速解决方法
2016/05/13 NodeJs
jQuery自制提示框tooltip改进版
2016/08/01 Javascript
jquery.Jcrop结合JAVA后台实现图片裁剪上传实例
2016/11/05 Javascript
原生js实现返回顶部缓冲效果
2017/01/18 Javascript
关于ES6的六个小特性(二)
2017/02/20 Javascript
获取当前按钮或者html的ID名称实例(推荐)
2017/06/23 Javascript
Vue组件通信之Bus的具体使用
2017/12/28 Javascript
如何在Angular应用中创建包含组件方法示例
2019/03/23 Javascript
Angular CLI 使用教程指南参考小结
2019/04/10 Javascript
Python动态语言与鸭子类型详解
2019/07/01 Python
python使用requests.session模拟登录
2019/08/09 Python
Jupyter Notebook 实现正常显示中文和负号
2020/04/24 Python
HTML5实现WebSocket协议原理浅析
2014/07/07 HTML / CSS
国际知名设计师时装商店:Coggles
2016/09/05 全球购物
PHP如何设置和取得Cookie值
2015/06/30 面试题
大学毕业生文采飞扬的自我鉴定
2013/12/03 职场文书
倡议书格式
2014/04/14 职场文书
个人四风问题对照检查材料
2014/09/26 职场文书
校园学雷锋广播稿
2014/10/08 职场文书
2014年合同管理工作总结
2014/12/02 职场文书
张丽莉事迹观后感
2015/06/16 职场文书
2015年教师节感言
2015/08/03 职场文书
2016党员干部廉洁自律心得体会
2016/01/13 职场文书
2016年基层党组织公开承诺书
2016/03/25 职场文书
全新239军机修复记
2022/04/05 无线电