PHP中的final2016-12-31 本站 guaitufinal的中文意思是“最后的,最终的”,可以修饰类或者方法。1)不希望父类的某个方法被子类重载(override)时,可以用final关键字修饰2)不希望类被继承时,可以用final修饰格式:final class 类名{}class 类名{final 修饰符 function 函数名(参数列表){}}
1、如果希望某个类不被其它的类来继承,可以使用final
例:
<?php
final class A{
}
class B extends A{ //将会报错
}
echo "ok";
?>
2、如果希望某个方法不被任何子类重写,比如计算个人所得税的方法,可以使用final来修饰该方法。
<?php
class A{
final public function getRate($salary){
return $salary*0.08;
}
}
class B extends A{
public function getRate($salary){
return $salary*0.01;
}
}
$b=new B();
echo $b->getRate(2000); //运行时会报错,因为父类A中的getRate()使用final修饰,无法在子类中重写
?>
3、被final修饰的方法,可以被子类继承,但无法被子类重写
例:
<?php
class A{
final public function getRate($salary){
return $salary*0.08;
}
}
class B extends A{
/*public function getRate($salary){
return $salary*0.01;
}*/
}
$b=new B();
echo $b->getRate(2000); //输出 160
?>
4、final关键字不能修饰属性(变量)
URL: http://www.bianceng.cn/webkf/PHP/201612/50493.htm