final关键字+const关键字

final关键字

1.如果我们希望某个类不被其它的类来继承(可能因为安全考虑),可以使用final。

例题

<?
    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{
    //不能去覆盖父类的getRate方法
    /*
        public function getRate($sal){
    return $sal*0.01;
}
        */
}
    $b=new B();
    echo $b->getRate(100);
?>


3.final 关键字不能去修饰属性。

const关键字

基本用法是:

class A{

  const 常量名=赋初值;

}

interface 接口名{

  const 常量名=赋初值;

}

注意:常量是public

例题

<?php
    class A{
    const TAX_TATE=0.08;
    public function payTax($va1){
    return $va1*A::TAX_TATE;
}
}
    $a=new A();
    echo $a->pay Tax(200);
?>
原文地址:https://www.cnblogs.com/zxl89/p/6049161.html