在程序继承中,有时可能需要在继承过程中保证某些类和方法不被改变,此时需要使用final关键字,final关键字有“无法改变”或者“最终”的含义,因此被final修饰的类和成员方法不能被修改。
1.final关键字修饰类
php中的类被final关键字修饰和后,该类将不可以被继承,也就是不能够派生子类
案例
<?php
//定义name类
final class name{
//程序代码
}
class name2 extends name{
//程序代码
}
$n=new name();
?>
程序报错,由于name被final关键字修饰,因此但name2继承name类时,编译出现“无法从最终name进行继承”的错误,由此可见,被final修饰的类为最终类,不能被其他类继承
2.final关键字修饰方法
当一个类的方法被final关键字修饰后,这个类的子类将不能重写改方法。
案例
<?php
//定义类
final class animal{
final public function shout(){
//方法体
}
}
class dog extends animal{
public function shout(){
//方法体
}
}
$d=new animal();
$d->shout();
?>
程序报错,dog类重写父类animal中的shout()方法,后编译出错,这是因为shout()被final关键字修饰
由此可见,被final关机在你修饰的方法为最终方法,子类不能对该方法进行重写。
正是由于final关键字的特性,但父类中定义某个方法时,如果不希望被子类重写,可以是使用final关键修饰改方法
*声明:内容来源于网络收集和整理,版权归原著所有,如来源信息有误或侵犯权益,请联系站长作修改和删除处理。