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

发布于 2015-02-23 17:57:23 | 91 次阅读 | 评论: 0 | 来源: 网友投递

PHP开源脚本语言PHP(外文名: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,入门门槛较低,易于学习,使用广泛,主要适用于Web开发领域。PHP的文件后缀名为php。

本文为大家讲解的是php继承中方法重载(覆盖)的应用场合,以实例形式较为详细的分析了重载的用法与对应的适用情况及使用技巧,感兴趣的同学可以参考下

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

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

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使用unset()删除数组中某个单元(键)的方法示例

PHP 面向对象程序设计(oop)学习笔记 (二) - 静态变量的属性和方法及延迟绑定

php实现用手机关闭计算机(电脑)的方法

PHP 面向对象程序设计(oop)学习笔记 (五) - PHP 命名空间

PHP 面向对象程序设计(oop)学习笔记 (四) - 异常处理类Exception

PHP 面向对象程序设计(oop)学习笔记(三) - 单例模式和工厂模式

PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程

php 求质素(素数) 的实现代码

php.ini中添加extension=php_mysqli.dll模块的方法

PHP 和 MySQL 基础教程(四)

PHP 和 MySQL 基础教程(三)

php继承和重载区别,php继承中方法重载(覆盖)的应用场合相关推荐

  1. Java中方法重载和方法重写的区别

    文章目录 1 Java中方法重载和方法重写的区别 1 Java中方法重载和方法重写的区别 主要区别如下: 方法重载: 在同一个类中 方法名相同 参数个数.顺序.类型不同 返回值类型.访问修饰符任意 方 ...

  2. 阶段1 语言基础+高级_1-3-Java语言高级_02-继承与多态_第1节 继承_7_继承中方法的覆盖重写_注意事项...

    创建一个父类 创建一个子类,并继承这个父类 父类总定义一个方法叫做method 子类中要想进行覆盖重写,也定义为相同的名称. 名称相同,参数列表相同.这种情况下就是发生了重写 子类的方法名称改成met ...

  3. java后端开发教程_【后端开发】详细讲解JAVA中方法重载概念——简单易懂

    1.什么方法重载? 方法的重载指的是方法名一样,但是参数类型不一样 1.1.attack方法重载 有一种英雄,叫做物理攻击英雄 ADHero,为ADHero 提供三种方法. public void a ...

  4. 在java中方法重载的要求,Java方法的重载

    Java方法的重载 方法重载:在类中方法名称相同,但是形式参数不同 public class Demo15 { public static void main(String[] args) { int ...

  5. java 中方法重载

    方法的重载* 在同一个类中,方法名相同,参数列表不同.与返回值类型无关.* 参数列表不同:* A:参数个数不同* B:参数类型不同* C:参数的顺序不同(不算重载 报错)ex:public class ...

  6. java varargs_Java中方法重载中的Varargs

    以下代码无法编译. package varargspkg; public class Main { public static void test(int... i) { for (int t = 0 ...

  7. JAVA不同类型数组重载_JAVA补课-DAY1:方法重载和数组

    IDEA简单方法使用 快捷键 Ctrl+Alt+L,IDEA代码格式化 Ctrl+/单行注释,重复按取消 Ctrl+Shift+/多行注释,重复可取消 5.fori<==>for (int ...

  8. 阶段1 语言基础+高级_1-3-Java语言高级_02-继承与多态_第1节 继承_6_继承中方法的覆盖重写_概念...

    转载于:https://www.cnblogs.com/wangjunwei/p/11210410.html

  9. java方法重载两个数相加_java方法重载实验:判断键盘输入的两个数据的类型后进行比较...

    实验内容: 使用java语言编程,实现键盘录入两个数据,比较两个数是否相等(采用方法调用方式),输出比较结果: 提高:对实现数字比较的方法进行重载,使之适应int.float.double.short ...

最新文章

  1. 使用μJava进行变异体测试
  2. shell 不等于_关于shell编程中的整数值比较的两种方式的简单操作实例
  3. 2款不同样式的CSS3 Loading加载动画 附源码
  4. 20145240 《信息安全系统设计基础》第三周学习总结
  5. Cypress EZ-USB FX3 DMA模式下的串口通讯
  6. [转载]Asp.net MVC中Controller返回值类型
  7. Node.js「四」—— 路由 / EJS 模板引擎 / GET 和 POST
  8. matlab sizeof size,使用Matlab进行MEXing C时,size_t和mwSize之间的差异
  9. vlan划分_基于MAC地址划分VLAN配置示例
  10. adb修改什么文件获取root权限_Android获取ROOT权限的通用方法
  11. 下列不是python内置函数的是_Python 内置函数
  12. win10启动修复_高手教你怎样在Win10上修复主引导记录(MBR),轻松解决启动故障...
  13. dat图片 电脑端微信_写了一个电脑版微信的dat图片转换器
  14. oj1138c语言,九度OJ 1138:进制转换 (进制转换)
  15. 研究100位同行,我总结了从0到5年的新媒体晋级宝典
  16. 解决项目Unable to find GatewayFilterFactory with name CacheRequestFilter错误
  17. win10系统用友软件服务器,win10系统怎么安装用友软件所需要的IIS的图文教程
  18. springmvc+ajaxfileupload异步上传
  19. 解决在nvidia官网下载巨慢的问题
  20. Chess Tournament (巧用思维)

热门文章

  1. mac mysql安装失败_Mac mysql安装失败解决方法
  2. R plot图片背景设置为透明_R语言入门第十二讲:基础绘图(二)------plot与par函数(1)...
  3. ssm框架里面前端拿HTML写,ssm框架引入Vue,声明式渲染,标签的href拼接字符串
  4. 软件工程项目总结_复旦大学软件工程实验室来ASE实验室交流
  5. springboot 别名不起作用_springboot之mybatis别名的设置
  6. 电子计算机和多媒体教材分析,人教新课标:电子计算机与多媒体教材分析
  7. linux系统中 库分为静态库和,Linux系统中“动态库”和“静态库”那点事儿-【经典好文】...
  8. apktoolkit apk反编译没有文件_[工具] Mac下一键APK逆向环境
  9. 第二节 CSS入门介绍
  10. JVM核心之JVM运行和类加载全过程