当前位置:Gxlcms > PHP教程 > php final 方法怎么用

php final 方法怎么用

时间:2021-07-01 10:21:17 帮助过:33人阅读

在php中当不希望类中的某个方法被子类重写时,我们可以设置这个方法为final方法,只需要在这个方法前加上final修饰符,其语法如“public final function max($a,$b){}”。

推荐:《PHP视频教程》

PHP 面向对象 final类与final方法

final---用于类、方法前。

final类---不可被继承。

final方法---不可被覆盖。

如果我们不希望一个类被继承,我们使用final来修饰这个类。这个类将无法被继承。

比如我们设定的Math类,涉及了我们要做的数学计算方法,这些算法也没有必要修改,也没有必要被继承,我们把它设置成final类型。

  1. <?
  2. //声明一个final类Math
  3. final class Math
  4. {
  5. public static $pi = 3.14;
  6. public function __toString()
  7. {
  8. return "这是Math类。";
  9. }
  10. }
  11. $math = new Math();
  12. echo $math;
  13. //声明类SuperMath 继承自 Math类
  14. class SuperMath extends Math
  15. {
  16. }
  17. //执行会出错,final类不能被继承。
  18. ?>

程序运行结果

  1. Fatal error: Class SuperMath may not inherit from final class (Math) in E:\PHPProjects\test.php on line 16

如果不希望类中的某个方法被子类重写,我们可以设置这个方法为final方法,只需要在这个方法前加上final修饰符。

如果这个方法被子类重写,将会出现错误。

  1. <?
  2. //声明一个final类Math
  3. class Math
  4. {
  5. public static $pi = 3.14;
  6. public function __toString()
  7. {
  8. return "这是Math类。";
  9. }
  10.   public final function max($a,$b)
  11.   {
  12.   return $a > $b ? $a : $b ;
  13.   }
  14. }
  15. //声明类SuperMath 继承自 Math类
  16. class SuperMath extends Math
  17. {
  18. public final function max($a,$b){}
  19. }
  20. //执行会出错,final方法不能被重写。
  21. ?>

程序运行结果

  1. Fatal error: Class SuperMath may not inherit from final class (Math) in E:\PHPProjects\test.php on line 16

以上就是php final 方法怎么用的详细内容,更多请关注gxlcms其它相关文章!

人气教程排行