final 意思是终的、后的。在php也是这个意思,可以用在类的前面,也可以用在类中的方法的前面。表示这个类或者方法试终的。意思就是该类或者方法不能被覆盖的。
final 简单的说就是
- 用在类前面了,这个类是个终的类不能被覆盖。
- 用在方法前面了,表示这个方法是终的不能被覆盖。
示例
# 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是不能被覆盖的。