深入分析PHP final关键字使用技巧

开发 后端
我们可以通过PHP final关键字来修饰类,并且也能修改类中的方法。希望通过这篇文章介绍的内容可以帮助我们加深对PHP语言的理解。

PHP程序员们在掌握了PHP语言的基础知识后,通常都会通过不断的经验积累来巩固自己所学到的知识。下面我们将为大家详细介绍有关PHP final关键字的相关用法。#t#

在PHP中类的继承是使用最多的一个编程特性,我们可以创建一个基类(父类)然后在这其中定义一些基本的方法,在我们的子类我们可以扩展父类中的方法这就叫覆盖,但是如果说你在父类的某些很关键的方法你不能被子类继承,因为如果子类继承了这个方法可能给程序带来一定的麻烦,所以我们希望这个方法是“私有”的,是不能被扩展的,这在PHP使用了final关键字来修饰你要不被继承的方法。

PHP final关键字可以修饰类同样可以修改类中的方法,但它们的作用是差不多的,即如果你使用了final关键字来修饰了,那么这个被修饰的类或者方法将不能被扩展或者继承。你只能老老实实去引用它。如果你在类前面使用了final,这就是说明这个类不能使用继承;如果你在方法前使用了PHP final关键字,这就是说明这个方法不能被覆盖。道理就是这么简单,让我们也看个简单的示例吧。

  1. < ?PHP   
  2. final class BaseClass {   
  3. public function test() {   
  4. echo "BaseClass::test() called\n";   
  5. }   
  6. final public function moreTesting() {   
  7. echo "BaseClass::moreTesting() called\n";   
  8. }   
  9. }   
  10. class ChildClass extends BaseClass {   
  11. public function moreTesting() {   
  12. echo "ChildClass::moreTesting() called\n";   
  13. }   
  14. }   
  15. // Results in Fatal error: Cannot override final method BaseClass::moreTesting()   
  16. ?>  

 

这个例子中,我们在类前和方法前都加了PHP final关键字来修饰我们具体的类,当然这个类是不能按要求来输出的,你可以自己动手调试下,基本的原理就这样了,我们只要记住如果类或者方法使用了final那么这就意味着类不能被继承或者子类不能覆盖父类的方法。

责任编辑:曹凯 来源: helpphp.cn
相关推荐

2012-03-01 12:50:03

Java

2020-08-10 08:00:13

JavaFinal关键字

2022-06-29 08:05:25

Volatile关键字类型

2021-01-05 10:26:50

鸿蒙Javafinal

2022-01-10 18:11:42

C语言应用技巧

2011-06-24 17:39:08

长尾关键词

2009-12-10 13:23:29

PHP关键字this

2019-08-28 16:38:49

finalJava编程语言

2024-01-15 10:41:31

C++关键字开发

2012-03-13 14:41:41

JavaJVM

2019-09-04 14:14:52

Java编程数据

2022-02-08 08:31:52

const关键字C语言

2021-02-01 13:10:07

Staticc语言UNIX系统

2009-11-26 19:24:54

PHP类CMS

2012-04-23 13:49:55

PHP技术

2010-09-07 14:21:22

PPPoE协议

2022-04-12 08:30:45

TomcatWeb 应用Servlet

2009-12-10 13:31:20

PHP self关键字

2012-06-02 00:53:39

Javafinally

2011-03-23 11:01:55

LAMP 架构
点赞
收藏

51CTO技术栈公众号