当前位置: 首页 > news >正文

PHP8中final关键字的应用-PHP8知识详解

在PHP8中,final的中文含义是最终的、最后的意思。被final修饰过的类和方法就是“最终的版本”。

如果关键字final放在类的前面,则表示该类不能被继承。

如果关键字final放在方法的前面,则表示该 方法不能被重新定义。

Image

如果有一个类的格式为:

final class class_name{
// ……
}

 则说明该类不可以被再继承,也不能再有子类。

如果有一个方法的格式为:

final function method_name()

则说明该方法在子类中不可以重写,也不可以被覆盖。

使用final关键字的参考代码:

  <?php
final class Fruit {                               //final类Fruitfunction __construct(){                       //定义构造方法echo "今日的特价水果是苹果。";}
}
class MyFruit extends Fruit {                   //定义Fruit类的子类function display()                          //定义子类的方法{echo "今日的特价水果是葡萄。";}
}
$fruit=new MyFruit ();                        //类的实例化
echo $fruit->display();                        //调用类的方法
?>                          

以上代码在php8中的运行结果为:

Fatal error: Class MyFruit may not inherit from final class (Fruit) in 
D:\phpenv\www\localhost\index.php on line 12

说明类Fruit不能被继承,否则会出错。

http://www.lryc.cn/news/180736.html

相关文章:

  • 基于Java的校园失物招领平台设计与实现(源码+lw+部署文档+讲解等)
  • 〔024〕Stable Diffusion 之 模型训练 篇
  • 【MySQL入门到精通-黑马程序员】MySQL基础篇-DML
  • 【ARMv8 SIMD和浮点指令编程】NEON 加载指令——如何将数据从内存搬到寄存器(LDxLDxR)?
  • 华为云云耀云服务器L实例评测 | 实例场景体验之搭建个人博客:通过华为云云耀云服务器构建个人博客
  • 问题记录 springboot 事务方法中使用this调用其它方法
  • 【Spring Cloud】Ribbon 实现负载均衡的原理,策略以及饥饿加载
  • Linux下基本指令(上)
  • C++ 并发编程实战 第十一章 多线程应用的测试和除错
  • Redis实现API访问频率限制
  • BGP服务器租用价格表_腾讯云PK阿里云
  • 时序分解 | Matlab实现SSA-VMD麻雀算法优化变分模态分解时间序列信号分解
  • 【CSS如何实现双飞翼布局】
  • 服务注册发现机制
  • 【postgresql 基础入门】多表联合查询 join与union 并,交,差等集合操作,两者的区别之处
  • 很可惜,pyinstaller不是万能的
  • 0/1背包问题
  • Redis入门到精通——00数据类型
  • PADS9.5使用记录
  • Axios post请求出现500错误
  • 【Leetcode】171.Excel 表列序号
  • 2023湖南省赛游记/题解
  • 海信电视U8KL使用体验:参数卷,画质技术也独有!
  • E. Mishap in Club
  • UE4 自带体积云应用
  • RTP/RTCP 协议讲解
  • 倒计时15天!百度世界2023抢先看
  • Redis 哈希(Hash)数据类型和命令(数据类型 二)
  • [Linux]线程互斥
  • leetcode-239-滑动窗口最大值