源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

PHP 面向对象 final类与final方法

  • 时间:2020-11-08 04:26 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:PHP 面向对象 final类与final方法
final---用于类、方法前。 final类---不可被继承。 final方法---不可被覆盖。 [b]final类不能被继承。 [/b]如果我们不希望一个类被继承,我们使用final来修饰这个类。这个类将无法被继承。比如我们设定的Math类,涉及了我们要做的数学计算方法,这些算法也没有必要修改,也没有必要被继承,我们把它设置成final类型。
[u]复制代码[/u] 代码如下:
<? //声明一个final类Math final class Math{ public static $pi = 3.14; public function __toString(){ return "这是Math类。"; } } $math = new Math(); echo $math; //声明类SuperMath 继承自 Math类 class SuperMath extends Math { } //执行会出错,final类不能被继承。 ?>
[b]程序运行结果[/b]
[u]复制代码[/u] 代码如下:
Fatal error: Class SuperMath may not inherit from final class (Math) in E:PHPProjectstest.php on line 14
[b]final方法不能被重写 [/b]如果不希望类中的某个方法被子类重写,我们可以设置这个方法为final方法,只需要在这个方法前加上final修饰符。 如果这个方法被子类重写,将会出现错误。
[u]复制代码[/u] 代码如下:
<? //声明一个final类Math class Math{ public static $pi = 3.14; public function __toString(){ return "这是Math类。"; } public final function max($a,$b){ return $a > $b ? $a : $b ; } } //声明类SuperMath 继承自 Math类 class SuperMath extends Math { public final function max($a,$b){} } //执行会出错,final方法不能被重写。 ?>
[b]程序运行结果 [/b]
[u]复制代码[/u] 代码如下:
Fatal error: Class SuperMath may not inherit from final class (Math) in E:PHPProjectstest.php on line 16
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部