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 相关文章推荐
substr()函数中文版
Oct 09 PHP
一个连接两个不同MYSQL数据库的PHP程序
Oct 09 PHP
PHP 表单提交给自己
Jul 24 PHP
php程序之die调试法 快速解决错误
Sep 17 PHP
php新建文件自动编号的思路与实现
Jun 27 PHP
PHP笔记之:日期函数的使用介绍
Apr 24 PHP
php目录拷贝实现方法
Jul 10 PHP
php中mkdir()函数的权限问题分析
Sep 24 PHP
php字符串操作常见问题小结
Oct 11 PHP
php基于dom实现的图书xml格式数据示例
Feb 03 PHP
利用PHP判断是手机移动端还是PC端访问的函数示例
Dec 14 PHP
PHP中将一个字符串部分字符用星号*替代隐藏的实现代码
Sep 08 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
CI框架出现mysql数据库连接资源无法释放的解决方法
2016/05/17 PHP
Javascript-Mozilla和IE中的一个函数直接量的问题
2007/01/09 Javascript
js实现运动logo图片效果及运动元素对象sportBox使用方法
2012/12/25 Javascript
子页向父页传值示例
2013/11/27 Javascript
jQuery 删除或是清空某个HTML元素示例
2014/08/04 Javascript
Javascript获取当前时间函数和时间操作小结
2014/10/01 Javascript
JavaScript中对象property的删除方法介绍
2014/12/30 Javascript
使用javascript实现简单的选项卡切换
2015/01/09 Javascript
js中键盘事件实例简析
2015/01/10 Javascript
js中删除数组中的某一元素实例(无下标时)
2017/02/28 Javascript
js实现单张图片平移切换效果
2017/10/11 Javascript
vue router仿天猫底部导航栏功能
2017/10/18 Javascript
Express进阶之log4js实用入门指南
2018/02/10 Javascript
使用jquery的cookie实现登录页记住用户名和密码的方法
2019/03/13 jQuery
简单说说如何使用vue-router插件的方法
2019/04/08 Javascript
JS页面获取 session 值,作用域和闭包学习笔记
2019/10/16 Javascript
Vue中qs插件的使用详解
2020/02/07 Javascript
Vue中 axios delete请求参数操作
2020/08/25 Javascript
python/sympy求解矩阵方程的方法
2018/11/08 Python
详解如何用TensorFlow训练和识别/分类自定义图片
2019/08/05 Python
Python3 requests文件下载 期间显示文件信息和下载进度代码实例
2019/08/16 Python
python next()和iter()函数原理解析
2020/02/07 Python
浅谈Keras的Sequential与PyTorch的Sequential的区别
2020/06/17 Python
HTML5之HTML元素扩展(下)—增强的Form表单元素值得关注
2013/01/31 HTML / CSS
澳大利亚牛仔裤商店:Just Jeans
2016/10/13 全球购物
英国婚礼商城:Wedding Mall
2019/11/02 全球购物
哈萨克斯坦最大的时装、鞋子和配饰在线商店:Lamoda.kz
2019/11/19 全球购物
大学生个人实习的自我评价
2014/02/15 职场文书
学校关爱留守儿童活动方案
2014/08/27 职场文书
民主生活会对照检查材料范文
2014/10/01 职场文书
运动会加油稿20字
2014/11/15 职场文书
班主任自我评价范文
2015/03/11 职场文书
大学副班长竞选稿
2015/11/21 职场文书
党校培训学习心得体会
2016/01/06 职场文书
Python常遇到的错误和异常
2021/11/02 Python
MySQL慢查询优化解决问题
2022/03/17 MySQL