• 微信号
目录

php基础

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

继承-final关键字

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