php+final+类,说明PHP中的final类和final方法。

PHP5引入了与面向对象编程概念相关的final关键字。

但是在进入决赛之前,我们需要确保我们对继承概念有很好的理解。在继承中,我们可以从另一个类继承一个类。另外,我们可以重写继承的类中的函数,以替换最初提供的行为。在某些情况下,我们可能需要避免继承类,或者可能需要防止函数被覆盖。这可以通过final来实现,方法是在class和function之前加上final关键字。在任何人尝试扩展final类或覆盖final函数的情况下,这实际上会使PHP产生错误。

注意:

我们只能将final关键字与方法和类一起使用。

让我们借助以下示例来演示该概念。

例:

我们无法覆盖父类函数。<?php

class BaseClass{

final function calculate($val1,$val2){

$sum = $val1+$val2;

echo "Sum of given no=".$sum;

}

}

class ChildClass extends BaseClass{

function calculate($x,$y){

$mult=$val1*$val2;

echo "Multiplication of given no=".$mult;

}

}

$obj= new ChildClass();

$obj->show(10,10);

?>

输出:PHP Fatal error: Cannot override final method BaseClass::calculate()

说明:

在上面的示例中,作为父类的类BaseClass。其中,计算方法标记为最终方法。这意味着我们不能在其任何子类中覆盖show方法。为了识别错误,ChildClass试图定义最终方法show()。这将产生致命错误,这意味着父类的最终方法无法在其子类中定义。

例:

在上课之前使用“最终”关键字<?php

final Class BaseClass{

function printData($val1,$val2){

$add=$val1+$val2;

echo "Sum of given no=".$s;

}

}

class Child extends BaseClass{

function printData($val1,$val2){

$m=$val1*$val2;

echo "Multiplication of given no=".$m;

}

}

$obj= new Child();

$obj->printData(20,20);

?>

输出:PHP Fatal error: Class Child may not inherit from final class (BaseClass)

说明:

在上面的示例类BaseClass中使用final进行了定义,结果我们无法扩展该类。当Child类尝试从BaseClass扩展时(这意味着Child是BaseClass的子类)。在这种情况下,PHP会引发错误消息“ Class Child可能无法从最终类(BaseClass)继承”。这意味着它不允许创建BaseClass的任何子类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值