php中的关键词final的用法

final 意思是终的、后的。在php也是这个意思,可以用在类的前面,也可以用在类中的方法的前面。表示这个类或者方法试终的。意思就是该类或者方法不能被覆盖的

final 简单的说就是

  1. 用在类前面了,这个类是个终的类不能被覆盖。
  2. 用在方法前面了,表示这个方法是终的不能被覆盖。

示例


# Author: www.phpjiaocheng.com


class Base {
    public function test() {
        echo "run test\n";
    }

    final public function name() {
        echo "class Base\n";
    }
}


class Child extends Base {
    public function test() {
        echo "run child\n";
    }

    /*
     * Cannot override final method Base::name()
     */
    /*
    public function name() {
        echo "class Child\n";
    }
     */
}

C = new Child();C->test(); // run child
$C->name();  // class Base

这个示例中方法子类的方法想要继承父类的方法name,由于父类的方法name前有关键词 final , 所有子类中name是不能被覆盖的。

留言

您的电子邮箱地址不会被公开。 必填项已用 * 标注