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 相关文章推荐
浅析使用Turck-mmcache编译来加速、优化PHP代码
Jun 20 PHP
php生成唯一的订单函数分享
Feb 02 PHP
PHP设置进度条的方法
Jul 08 PHP
PHP防盗链的基本思想 防盗链的设置方法
Sep 25 PHP
对比分析php中Cookie与Session的异同
Feb 19 PHP
浅谈PHP中try{}catch{}的使用方法
Dec 09 PHP
PHP 7.0新增加的特性介绍
Jun 08 PHP
Laravel5.* 打印出执行的sql语句的方法
Jul 24 PHP
php-msf源码详解
Dec 25 PHP
Windows下wamp php单元测试工具PHPUnit安装及生成日志文件配置方法
May 28 PHP
php实现微信原生支付(扫码支付)功能
May 30 PHP
基于laravel缓冲cache的用法详解
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
声音就能俘获人心,蕾姆,是哪个漂亮小姐姐配音呢?
2020/03/03 日漫
德生PL330的评价与改造
2021/03/02 无线电
php minixml详解
2008/07/19 PHP
php 中文字符串首字母的获取函数分享
2013/11/04 PHP
javascript 匿名函数的理解(透彻版)
2010/01/28 Javascript
jsvascript图像处理—(计算机视觉应用)图像金字塔
2013/01/15 Javascript
javascript移动设备Web开发中对touch事件的封装实例
2014/06/05 Javascript
NodeJS学习笔记之Connect中间件模块(一)
2015/01/27 NodeJs
JavaScript实现单击下拉框选择直接跳转页面的方法
2015/07/02 Javascript
jQuery控制frames及frame页面JS的方法
2016/03/08 Javascript
使用PHP+JavaScript将HTML页面转换为图片的实例分享
2016/04/18 Javascript
前端编码规范(3)JavaScript 开发规范
2017/01/21 Javascript
关于vue.js组件数据流的问题
2017/07/26 Javascript
浅谈Node模块系统及其模式
2017/11/17 Javascript
微信小程序通过保存图片分享到朋友圈功能
2018/05/24 Javascript
详解vue后台系统登录态管理
2019/04/02 Javascript
[41:08]2014 DOTA2国际邀请赛中国区预选赛 HGT VS NE
2014/05/22 DOTA
[50:21]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第二场
2018/08/19 DOTA
12步入门Python中的decorator装饰器使用方法
2016/06/20 Python
快速实现基于Python的微信聊天机器人示例代码
2017/03/03 Python
Python读取和处理文件后缀为.sqlite的数据文件(实例讲解)
2017/06/27 Python
python虚拟环境的安装配置图文教程
2017/10/20 Python
Python中使用支持向量机(SVM)算法
2017/12/26 Python
python matplotlib 注释文本箭头简单代码示例
2018/01/08 Python
Python正则表达式和元字符详解
2018/11/29 Python
python向字符串中添加元素的实例方法
2019/06/28 Python
Python学习笔记之While循环用法分析
2019/08/14 Python
python线程池如何使用
2020/05/28 Python
让你相见恨晚的十个Python骚操作
2020/11/18 Python
利用三角函数在canvas上画虚线的方法
2018/01/11 HTML / CSS
更夫岗位责任制
2014/02/11 职场文书
写求职信要注意什么问题
2014/04/12 职场文书
文艺演出策划方案
2014/06/07 职场文书
幼儿园植树节活动总结
2014/07/04 职场文书
2015年防灾减灾工作总结
2015/07/24 职场文书
MongoDB 常用的crud操作语句
2021/06/20 MongoDB