PHP中的final

final的中文意思是“最后的,最终的”,可以修饰类或者方法。

1)不希望父类的某个方法被子类重载(override)时,可以用final关键字修饰

2)不希望类被继承时,可以用final修饰

格式:

final class 类名{

}

class 类名{

final 修饰符 function 函数名(参数列表){}

}

1、如果希望某个类不被其它的类来继承,可以使用final

例:

<?php  final class A{  }  class B extends A{ //将会报错  }  echo "ok";?>

2、如果希望某个方法不被任何子类重写,比如计算个人所得税的方法,可以使用final来修饰该方法。

<?php  class A{     final public function getRate($salary){        return $salary*0.08;     }  }  class B extends A{      public function getRate($salary){        return $salary*0.01;     }  }  $b=new B();  echo $b->getRate(2000); //运行时会报错,因为父类A中的getRate()使用final修饰,无法在子类中重写?>

3、被final修饰的方法,可以被子类继承,但无法被子类重写

例:

<?php  class A{     final public function getRate($salary){        return $salary*0.08;     }  }  class B extends A{      /*public function getRate($salary){        return $salary*0.01;     }*/  }  $b=new B();  echo $b->getRate(2000); //输出 160?>

4、final关键字不能修饰属性(变量)

URL: http://www.bianceng.cn/webkf/PHP/201612/50493.htm

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索class
, final
, 关键字
, 方法
, 子类
, 类名
final修饰
php中final、php final、php final class、php final修饰符、php final static,以便于您获取更多的相关知识。

时间: 2025-01-21 02:29:06

PHP中的final的相关文章

Java中使用final修饰符需要注意的地方

对与java中的final变量,java编译器是进行了优化的.每个使用了final类型变量的地方都不会通过连接而进行访问.比如说Test类中使用了Data类中一个final的int数字fNumber=77,这时候,java编译器会将77这个常数编译到Test类的指令码或者常量池中.这样,每次Test类用到fNumber的时候,不会通过引用连接到Data类中进行读取,而是直接使用自己保存在类文件中的副本. 用程序说话: C:\>javac Test.javaTest.java: public cl

详解Java中的final关键字的使用_java

final含义 final是Java中的一个保留关键字,可以声明成员变量.方法和类.一旦你将引用声明为final类型,你将不能再改变这个引用了.编译器会检查代码,如果你试图将变量再次初始化的话,编译器会报编译错误.final变量 凡是对成员变量或者本地变量(在方法中的或者代码块中的变量称为本地变量)声明为final的都叫做final变量.下面是final修饰变量的例子: final int constValue = 1; // constValue = 2; The final local va

Java中的final

这几天,在网上找了一些关于final的知识,当然并不全面,有的一时也没有很好的理解,先收集起来,理理思路,把不懂的画出来,以便更好地学习-- Java中的final关键字通常的指的是"这是无法改变的".它可能被做为三种的修饰词.------数据(基本类型,对象或者数组),方法(类方法.实例方法),类. <1>final应用于类 如果类被声明为final,则表示类不能被继承,也就是说不能有子类.因为不能有子类,所以final类不能被声明为abstract抽象类.所以final

浅析Java中的final关键字

谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法.下面是本文的目录大纲: 一.final关键字的基本用法 二.深入理解final关键字 若有不正之处,请多多谅解并欢迎指正. 请尊重作者劳动成果,转载请标明原文链接: http://www.cnblogs.com/dolphin0520/p/3736238.html 一.final关键字的基本用法 在J

浅析Java中的final关键字(转)

谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法.下面是本文的目录大纲: 一.final关键字的基本用法 二.深入理解final关键字 若有不正之处,请多多谅解并欢迎指正. 请尊重作者劳动成果,转载请标明原文链接: http://www.cnblogs.com/dolphin0520/p/3736238.html 一.final关键字的基本用法 在J

JAVA中的final关键字用法实例详解_java

本文实例讲述了JAVA中的final关键字用法.分享给大家供大家参考,具体如下: 根据上下文环境,java的关键字final也存在着细微的区别,但通常指的是"这是无法改变的."不想改变的理由有两种:一种是效率,另一种是设计.由于两个原因相差很远,所以关键子final可能被误用. 接下来介绍一下使用到final的三中情况:数据,方法,类 final数据 许多编程语言都有某种方法,来向编译器告知一块数据是恒定不变的.有时数据的恒定不变是很有用的,例如: 1. 一个编译时恒定不变的常量 2.

浅谈Java中的final关键字与C#中的const, readonly关键字_java

在编程语言中都有某种方式,告知编译器一块数据是恒定不变的.有两个需求 1. 一个永不改变的编译器常量 2. 一个在运行时被初始化的值,而这个值不会被改变 在Java中,使用final修饰变量实现这两个需求 <pre name="code" class="java">//编译器常量 private final int valueOne = 9; private static final int VALUE_TWO = 99; public static f

深入浅析Java中的final关键字_java

谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法.下面是本文的目录大纲: 一.final关键字的基本用法 二.深入理解final关键字 若有不正之处,请多多谅解并欢迎指正. final 对于常量来说,意味着值不能改变,例如 final int i=100.这个i的值永远都是100.但是对于变量来说又不一样,只是标识这个引用不可被改变,例如 final

转载:浅析Java中的final关键字

谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法.下面是本文的目录大纲: 一.final关键字的基本用法 二.深入理解final关键字 若有不正之处,请多多谅解并欢迎指正. 请尊重作者劳动成果,转载请标明原文链接: http://www.cnblogs.com/dolphin0520/p/3736238.html 一.final关键字的基本用法 在J

Java中利用final关键字inline编译优化真的有效吗?

(inkfish原创,转载请注明出处:http://blog.csdn.net/inkfish/) 为寻求java代码的性能优化,从网上搜到利用final关键字进行编译时inline优化的方法,但是真的有效吗?实际测试中发现未必,甚至性能影响巨大,最终放弃了使用final优化的想法. 测试环境:Windows XP SP2,JDK 1.6.0_15-b03,Eclipse 3.5 SR1.   package test; public class Test { public static voi