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 相关文章推荐
html中select语句读取mysql表中内容
Oct 09 PHP
实用函数10
Nov 08 PHP
php empty,isset,is_null判断比较(差异与异同)
Oct 19 PHP
PHP取整数函数常用的四种方法小结
Jul 05 PHP
php中配置文件操作 如config.php文件的读取修改等操作
Jul 07 PHP
PHP读取PDF内容配合Xpdf的使用
Nov 24 PHP
PHP实现路由映射到指定控制器
Aug 13 PHP
php arsort 数组降序排序详细介绍
Nov 17 PHP
Yii2.0实现生成二维码功能实例
Oct 24 PHP
laravel ORM 只开启created_at的几种方法总结
Jan 29 PHP
Laravel框架中集成MongoDB和使用详解
Oct 17 PHP
laravel框架与其他框架的详细对比
Oct 23 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
预告映像公开!第1章续篇剧场版动画《Princess Principal Crown Handler》4月10日上映!
2020/03/06 日漫
php中time()与$_SERVER[REQUEST_TIME]用法区别
2014/11/19 PHP
Laravel中使用阿里云OSS Composer包分享
2015/02/10 PHP
Laravel框架执行原生SQL语句及使用paginate分页的方法
2018/08/17 PHP
php微信公众号开发之快递查询
2018/10/20 PHP
JXTree对象,读取外部xml文件数据,生成树的函数
2007/04/02 Javascript
学习jquery必备 api中英文对照的chm手册 下载
2007/05/03 Javascript
jquery插件hiAlert实现网页对话框美化
2015/05/03 Javascript
jQuery Validation Plugin验证插件手动验证
2016/01/26 Javascript
js实现的页面矩阵图形变换特效
2016/01/26 Javascript
JS模仿手机端九宫格登录功能实现代码
2016/04/28 Javascript
JS阻止事件冒泡行为和闭包的方法
2016/06/16 Javascript
js实现控制textarea输入字符串的个数,鼠标按下抬起判断输入字符数
2016/10/25 Javascript
微信小程序 开发经验整理
2017/02/15 Javascript
vue draggable resizable gorkys与v-chart使用与总结
2019/09/05 Javascript
vue 将多个过滤器封装到一个文件中的代码详解
2020/09/05 Javascript
Python数据结构与算法之二叉树结构定义与遍历方法详解
2017/12/12 Python
Python实现生成随机日期字符串的方法示例
2017/12/25 Python
[原创]Python入门教程1. 基本运算【四则运算、变量、math模块等】
2018/10/28 Python
Python微信操控itchat的方法
2019/05/31 Python
Python实现的对一个数进行因式分解操作示例
2019/06/27 Python
python实现二分查找算法
2020/09/18 Python
python 实现有道翻译功能
2021/02/26 Python
css3隔行变换色实现示例
2014/02/19 HTML / CSS
HTML5新增的标签和属性归纳总结
2018/05/02 HTML / CSS
html5中valid、invalid、required的定义
2014/02/21 HTML / CSS
什么是servlet
2012/05/08 面试题
幼师自我鉴定
2014/02/01 职场文书
趣味运动会活动方案
2014/02/12 职场文书
汇源肾宝广告词
2014/03/20 职场文书
一岗双责责任书
2014/04/15 职场文书
捐资助学感谢信
2015/01/21 职场文书
销售经理助理岗位职责
2015/04/13 职场文书
2019请假条的基本格式及范文!
2019/07/05 职场文书
MySQL 视图(View)原理解析
2021/05/19 MySQL
golang生成vcf通讯录格式文件详情
2022/03/25 Golang