php中重写和final关键字的使用

  为什么把重写和final放在一起,原因就是一条:final的意思是不可更改的,也就是说final定义的东西是不可改变的,下面具体来说一下。

来看一段简单的代码:

 1 class BaseClass {
 2    final public function test() {
 3        echo "BaseClass::test() called\n";
 4    }
 5    
 6    public function moreTesting() {
 7        echo "BaseClass::moreTesting() called\n";
 8    }
 9 }
10 final class AbcClass{
11   public function abc(){
12     echo "abc";
13   }
14 }
15 /*
16 class Abcd extends AbcClass{
17   public function abcd(){
18   }
19 }
20 */
21 
22 class ChildClass extends BaseClass {
23    public function moreTesting($tmp=null) {
24        echo "ChildClass::moreTesting() called\n";
25    }
26 }

代码中定义了一个类,BaseClass然后ChildClass继承了这个类并且重写了这个类中的方法moreTesting,重写方法的时候方法名一定要一样,参数可以改变。这时候对象调用的时候就是调用的重写后的方法。

代码中注释了一个地方,如果这段代码被执行就会报错,因为AbcClass是final关键字定义的类,可以正常被使用,但不能被任何类继承。

类中final关键字定义的方法也不能被重写,比如BaseClass中的test方法,只能使用,如果重写会出现错误。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/544520.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java vector_Java Vector lastElement()方法与示例

java vector向量类的lastElement()方法 (Vector Class lastElement() method) lastElement() method is available in java.util package. lastElement()方法在java.util包中可用。 lastElement() method is used to return the last element of this Vector. lastElement()方法…

SpringBoot官方热部署和远程调试神器,真带劲!

平时使用SpringBoot开发应用时,修改代码后需要重新启动才能生效。如果你的应用足够大的话,启动可能需要好几分钟。有没有什么办法可以加速启动过程,让我们开发应用代码更高效呢?今天给大家推荐一款SpringBoot官方的热部署工具spri…

【Python】输入任意个数元素并保存至列表

目录1.导入任意个数元素到列表1.1.编程思路1.2.代码片2.查找一个重复元素在列表中的所有位置2.1.编程思路2.2代码片1.导入任意个数元素到列表 1.1.编程思路 输入未知个数的元素需要用列表来存储,由于Python具有内存的动态分配能力,列表不需要手动动态分…

MySQL 性能优化的 9 种姿势,面试再也不怕了!

大家好,我是磊哥!今天给大家分享一些简单好用的数据库优化方式!1、选择最合适的字段属性Mysql是一种关系型数据库,可以很好地支持大数据量的存储,但是一般来说,数据库中的表越小,在它上面执行的…

containsall_Java Vector containsAll()方法与示例

containsall向量类containsAll()方法 (Vector Class containsAll() method) containsAll() method is available in java.util package. containsAll()方法在java.util包中可用。 containsAll() method is used to test the existence of all the elements of this Vector in t…

Excel的规划求解【详细步骤】

本文目录1.说明2.准备加载项步骤1步骤2步骤33.线性规划问题步骤4步骤5步骤61.说明 使用Lingo程序也可以实现线性规划、非线性规划以及0-1规划,但是在缺少Lingo程序的情况下,我们使用Excel照样可以很容易地完成。在这里我给大家提供了解决此类问题的详细…

4 种方法!检查字符串是否为合法的日期格式

哈喽大家好,今天咱们来讲一下,Java 中如何检查一个字符串是否是合法的日期格式?为什么要检查时间格式?后端接口在接收数据的时候,都需要进行检查。检查全部通过后,才能够执行业务逻辑。对于时间格式&#x…

linux下tomcat无法显示图片验证码

在catalina.sh中的-Djava.io.tmpdir"$CATALINA_TMPDIR" \后一行增加 -Djava.awt.headlesstrue \ 共8处转载于:https://blog.51cto.com/zhangfeikr/1673312

Java Throwable toString()方法与示例

Throwable类toString()方法 (Throwable Class toString() method) toString() Method is available in java.lang package. toString()方法在java.lang包中可用。 toString() Method is used to return a short description of the exception. toString()方法用于返回对该异常的…

【Matlab】根据图生成带权邻接矩阵,并求出最短路径

目录图的简介无向图(Graph)生成带权邻接矩阵求两点最短路径有向图(Digraph)生成带权邻接矩阵求最短路径图的简介 图是拓扑学中的一个重要概念,分为无向图和有向图两种。图有两个重要属性,即点(…

阿里二面:为什么要分库分表?

在高并发系统当中,分库分表是必不可少的技术手段之一,同时也是BAT等大厂面试时,经常考的热门考题。你知道我们为什么要做分库分表吗?这个问题要从两条线说起:垂直方向 和 水平方向。1 垂直方向垂直方向主要针对的是业务…

java scanner_Java Scanner nextDouble()方法与示例

java scanner扫描仪类的nextDouble()方法 (Scanner Class nextDouble() method) nextDouble() method is available in java.util package. nextDouble()方法在java.util包中可用。 nextDouble() method is used to scans the next token of the input scanned into a double v…

Java 中 List 分片的 5 种方法!

作者 | 王磊来源 | Java中文社群(ID:javacn666)转载请联系授权(微信ID:GG_Stone)前些天在实现 MyBatis 批量插入时遇到了一个问题,当批量插入的数据量比较大时,会导致程序执行报错&a…

Matlab仿真炮弹飞行轨迹——探究射弹参数对飞行轨迹的影响

目录1.分析炮弹受力2.设定参数并仿真3.通过仿真寻找最佳射弹速度3.1.射弹角度的影响3.2.射弹速率的影响3.3.炮弹属性和空气的影响3.3.1.空气阻力系数的影响3.3.2.炮弹质量的影响1.分析炮弹受力 假设炮弹在飞行过程中可以看成质点,运动时仅考虑初始速度、重力加速度…

EL与JSTL注意事项汇总

EL使用表达式(5一个 问题) JSTL使用标签(5问题) 什么是EL。它可以用做? EL全名Expression Language在JSP使用页面 格公式${表达式} 样例${requestScope.customer.id} 功能: 1.才四个域对象中取出属性数据显…

nextboolean()_Java Random nextBoolean()方法与示例

nextboolean()随机类nextBoolean()方法 (Random Class nextBoolean() method) nextBoolean() method is available in java.util package. nextBoolean()方法在java.util包中可用。 nextBoolean() method is used to return the next pseudo-random Boolean value from this Ra…

50行代码,搞定敏感数据读写!

每天早上七点三十,准时推送干货一、介绍在实际的软件系统开发过程中,由于业务的需求,在代码层面实现数据的脱敏还是远远不够的,往往还需要在数据库层面针对某些关键性的敏感信息,例如:身份证号、银行卡号、…

【Python】导入资源管理器的文件列表(计算文件和文件夹大小)

文章目录1.按照扩展名进行分类2.导出文件的大小3.计算文件夹大小4.分类到字典5.完整代码及效果1.按照扩展名进行分类 使用Python查询一个路径下的所有文件可以借助glob模块以及os模块。 在导入文件列表之前,我们需要指定我们的操作目录,操作目录一经指定…

SublimeText2使用笔记

将Sublime Text2 加入右键菜单(转) 1. 运行中输入 regedit 打开注册表 2. 在HKEY_CLASSES_ROOT/*/shell/ 下新建’项’ ,名称自己觉得.我用的是Sublime Text 3. 在 Sublime Text 下 新建’项’ 名字:command (这个貌似不可以修改) 4. 点击 command ,在右…

Java Package getPackage()方法与示例

包类的getPackage()方法 (Package Class getPackage() method) getPackage() method is available in java.lang package. getPackage()方法在java.lang包中可用。 getPackage() method is used to search a package by given package name in the callers ClassLoader instanc…