• 微信号
  • 微信号
目录

PHP基础

您当前的位置:首页 > 我的笔记 > PHP基础>继承-final关键字

继承-final关键字

孤峰 80

在程序继承中,有时可能需要在继承过程中保证某些类和方法不被改变,此时需要使用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关键修饰改方法